TurboDrive™ GigE Vision 네트워크 처리량 향상 기술

TurboDrive는 GigE Vision 네트워크 처리량을 향상할 수 있도록 개발된 새로운 기술이다.
최근 고속 대형 CMOS 이미지 센서를 사용하는 카메라들이 주로 사용되고 있어 기가비트 이더넷 네트워크는 점점 병목 현상이 발생하고 있다.


TurboDrive는 카메라에서 호스트 컴퓨터로 이미지를 전송하기 위해 값비싼 기술을 사용하지 않고도 새로운 시스템의 고속 대형 CMOS 이미지 센서를 사용할 수 있도록 GigE 네트워크 연결의 처리량을 향상할 수 있다.
TurboDrive는 기가비트 이더넷 네트워크를 통해 데이터를 전송할 때 사용되는 동작 기능이다. GigE Vision 네트워크만을 위해 개발되어 GigE 네트워크의 처리량을 효율적으로 향상한 TurboDrive는 비전 솔루션 전문기업인 앤비젼이 제공하는 일부 GigE Vision 카메라와 Teledyne DALSA 제품들과 함께 동작하도록 설계되어 있다.
이 글은 특허 출원 중인 TurboDrive 기술의 원리에 대해 앤비젼이 제공한 기술자료이다.

최근에 발표한 Linea GigE Line scan 카메라는 새로운 기준으로 혁신을 끌어올렸다.
Linea GigE 카메라 제품군은 TurboDrive 기술을 제공하는 첫 번째 카메라 제품군이다.
이 기술은 카메라가 기가비트 이더넷의 제한 조건을 초과하는 속도로 정보를 전송할 수 있도록 만든다. TurboDrive는 센서에서 출력되는 데이터의 중복성을 검토하는 고급 데이터 인코딩 기술을 사용하는 특허 출원 기술이다. 이 기술은 데이터의 손실 없이 픽셀 정보를 모형화 하기 위해 이미지 엔트로피 기반 인코딩을 사용한다. 이를 통해 인코딩을 위한 각 픽셀을 더 적은 비트 수로 구성하여 더 빠르게 데이터를 전송할 수 있다.

현재 새로 출시하는 CMOS 이미지 센서들은 획득 속도를 끌어올리고 있고, 카메라 인터페이스에서 사용할 수 있는 전송 대역폭은 종종 병목 현상이 일어나고 있다. GigE Vision과 USB3 Vision과 같은 일부 카메라 인터페이스를 사용하는 프레임 그래버들은 일반적으로 Camera Link, Camera Link HS, CoaXPress와 같은 프레임 그래버 기반 인터페이스를 사용하는 프레임 그래버에 비해 저렴하지만, 사용할 수 있는 처리량이 적다. TurboDrive 기술은 시스템의 프레임 그래버를 포함하지 않고 카메라의 획득 속도를 증가시킬 수 있는 효율적인 방법으로, 통신 링크가 패킷 재전송과 순방향 오류 정정을 위한 규정을 제공하는 등 이 기술은 신뢰할 수 있는 모든 전송 매체와 같이 적용된다.

머신 비전 카메라들은 전통적으로 이미지 정보를 전송하기 위해 8 bit 또는 16 bit를 통한 절대적인 인코딩(Absolute encoding)을 사용했다. 예를 들어, 8 bit에서는 각 픽셀이 0(검은색)~255(흰색) 범위의 값을 가진다. TurboDrive는 인코딩하기 전 각 픽셀을 검사하기 위해 영역 상대 인코딩(Localized relative encoding)을 사용한다. 이를 통하면, 픽셀 정보를 더 작게 인코딩할 수 있고, 같은 정보를 적은 비트를 사용하므로 더욱 효율적이다. 신뢰할 수 있는 전송 매체와 함께 사용하면 TurboDrive의 속도는 채널 속도의 120%에서 235%까지 증가할 수 있다.

이미지엔트로피
이미지 엔트로피(Image entropy)는 이미지의 무작위 수준을 측정한다. 이를 통해 더욱 균일한 이미지를 만들어 쉽게 인코딩할 수 있다. 이미지 엔트로피가 매우 높으면 많은 정보를 포함하고 있어 인코딩하기가 어렵다.

획득한 각 픽셀의 데이터 소스가 이전에 획득한 픽셀과 많이 다르다고 가정해 보면, 각 발생 픽셀값은 Pi 발생 확률을 가진다. 집단에서 다른 픽셀과 같이 낮은 발생 확률을 갖는 픽셀에 의해 제공되는 정보는 발생 확률이 높은 픽셀 정보보다 더 높다.
이 글에서는 다음 공식을 사용하여 이미지 엔트로피를 정의한다.


여기서, Pi는 “i”와 같은 픽셀값이고, log2는 밑수가 2인 로그값이다. 1보다 작은 확률의 경우 log2는 음수로 덧셈 공식 앞에 마이너스 기호를 입력해야 한다. 큰 확률의 경우 log2는 0에 가까워진다(확률은 항상 1.0과 같거나 작아야 한다). 이를 통해 발생 확률이 적은 픽셀값은 이미지 엔트로피에 많은 영향을 끼친다는 것을 알 수 있다.

위의 공식은 이미지 히스토그램을 통해 직접 계산할 수 있다. 이 히스토그램은 주어진 이미지 픽셀값의 분포를 나타낸다. 특정 값이 이미지에 나타날 때마다 이 값에 대한 히스토그램의 열은 1씩 증가한다. 히스토그램은 이렇게 각각 발생할 수 있는 픽셀값의 확률 분포를 제공하는 데 사용될 수 있다.

위의 그림에서 단일 세기의 균일한 이미지가 같은 값을 공유하는 모든 픽셀을 가진다는 것을 알 수 있다. 따라서 히스토그램은 하나의 최고조 값으로 표현된다. 그리고 단독 값의 발생 확률이 1.0과 같은 것이므로 이 이미지 엔트로피는 0과 같을 것이고, log2(1.0)=0이 된다. 이 이미지와 같이 완벽하게 설명하려면 오직 모든 픽셀의 공통 값만 알면 된다. 이러한 이미지를 인코딩하는 정보가 너무 많은 정보를 요구하지 않는다는 것을 알 수 있다. 실제 이미지는 이렇게 간단하지 않을 수 있지만, 이들 중 대부분은 중복되어 특정 픽셀값이 발생할 확률이 높다. 이 원칙은 TurboDrive의 기본 구성 요소 중 하나이다.

즉, 이미지 엔트로피는 이미지에서 각 픽셀을 인코딩하는 데 필요한 평균 비트 수의 이론적인 하한을 나타낸다. 따라서 낮은 값은 TurboDrive로 더 효율적인 패킹을 달성할 수 있다.

TurboDrive 원리 #1 :
이미지 엔트로피(Image entropy)

 

주변 효과(Neighborhood effect) 활용
이미지 엔트로피는 TurboDrive에서 사용된 첫 번째 원칙이다. 정보의 손실 없이 픽셀 정보를 인코딩하는 데 필요한 비트 수를 감소하기 위해 TurboDrive는 주변 효과를 고려한다. 픽셀의 주변은 픽셀을 둘러싼 픽셀의 집합이다. 이 분석에서는 주변 간의 정확한 거리가 다를 수 있지만, 인접 픽셀로만 이 예제에서 사용한다(즉, 참조 픽셀을 직접 건드리지 않는다).

 

대부분의 픽셀은 아주 적은 픽셀 변동과 많은 중복이 존재한다. 따라서 주변 픽셀 정보를 효율적으로 사용하여 더욱 효과적으로 참조 픽셀을 인코딩 할 수 있다.

이것을 볼 수 있는 하나의 방법은 회선(Convolution)을 사용하여 구현되는 하이패스 2D 필터를 살펴보는 것이다. 간단한 하이패스 필터는 0과 같은 모든 계수의 합을 가진다. 이 모델에서 사용할 필터는 3×3 마스크가 있고, 중심 픽셀에 큰 가중치를 제공한다.

이 필터의 결과는 중심에 있는 참조 픽셀과 4개의 가장 가까운 주변 픽셀의 차이를 제공한다. 이것은 균일한 이미지에서 9개의 픽셀이 같은 값을 가지고, 0으로 필터링 된다. 일반적으로 픽셀 변동이 적은 픽셀은 이 하이패스 필터에 의해 더 작은 값들을 출력한다. 큰 값을 인코딩하는 것보다 작은 값을 인코딩하는 데 더 적은 비트들을 취한다는 것을 직관적으로 이해할 수 있다. 물론, 이미지 정보에 적용하기 위해 이 모델의 필터 계수 9개에 가중치를 더할 수도 있다.

 

TurboDrive 원리 #2 :
주변 효과 (Neighborhood effect)

이미지 균일성을 사용하여 TurboDrive는 절대적인 인코딩(Absolute encoding)보다 영역 상대 인코딩(Localized relative encoding)을 사용한다. 주변 픽셀이 높은 상관관계 수준을 제시하는 경우 더 효율적이다. 이미지 인코딩 크기를 최소화하기 위해 이미지 엔트로피 단계에 입력하는 데에 이 하이패스 필터 동작의 결과가 사용된다. 이를 통해 원래 이미지에 나타나는 모든 정보를 유지할 수 있도록 조밀하게 표현할 수 있다. 이 방법을 사용하여, 다음과 같이 영역 상대 인코딩을 사용한 전송 매체의 이론적인 처리량을 향상시킬 수 있다.

위의 공식에서 분자는 일반적으로 8 bit와 같지만, 분모는 <그림 3>에서 주어진 2D 하이패스 필터를 적용한 후 <식 1>의 결과로 지정된다.

전송 링크 요구사항
전형적인 머신 비전 카메라는 절대적인 인코딩을 사용하여 픽셀 정보를 인코딩 한다. 이것은 픽셀 자체로 완벽하게 설명할 수 있으므로, 디코딩하기 위해 추가적인 정보가 필요 없다는 것을 의미한다. 숫자 값은 픽셀의 세기를 나타낸다. 이 방식은 전송 오류가 발생하면 리시버가 잘못된 픽셀을 쉽게 건너뛸 수 있다는 장점이 있다. 이 인코딩 방식의 단점은 앞에서 설명한 이미지 엔트로피 원리를 기반으로 하는 방식보다 더 많은 비트를 사용해야 한다는 점이다.

 

절대적인 인코딩이 최적이 아니라면 왜 머신 비전에서 매우 보편적으로 사용하게 되었을까? 이것은 사실 아날로그 및 Camera Link 인터페이스가 전송 오류를 처리하지 않는 전송 채널을 제공한다는 단순함에서 유래되었다.
Camera Link의 예를 사용해 보면, 이 카메라 인터페이스는 2000년 10월에 소개되었고, 최대 850MB/s의 빠른 데이터 처
리량으로 인해 보편적으로 사용되었다. 하지만 Camera Link는 비트가 전송 중에 손상되어도 프레임 그래버가 문제를 감지하거나 애플리케이션에 알려줄 방법이 없다. 영향을 받는 픽셀은 잘못된 값을 가진다. 손상된 비트가 최상위 비트(큰 충격)에 인접한 지 또는 최하위 비트(작은 충격)에 인접한 지에 따라 영향은 달라진다. Camera Link는 어떠한 체크섬(Checksum), 데이터 재전송, 순방향 오류 보정 메커니즘도 제공하지 않는다. 하지만 전송을 오류 없이 보낼 수 없는 것이 오래된 카메라 인터페이스의 특성이라는 생각은 잘못된 것이다. 최신 카메라 인터페이스인 CoaXPress 1.1 버전조차도 이미지 전송 견고성이 없는 오류 검출로 제한된다.

<그림 4>는 8 bit 픽셀에서의 이 문제를 나타낸다. 이 카메라는 이진값 11010001b=209d를 전송한다. 데이터를 전송하는 동안 bit 6은 1에서 0으로 변경됩니다. 따라서 리시버는 이진값 10010001b=145d을 받을 수 있다. 256 단계 중 64 정도의 이미지 센서에서 캡처된 것보다 훨씬 어두운 픽셀을 표시한다. 그림에서 직접 눈으로 확인할 수 있는 아주 치명적인 오류이다.

인접 픽셀에 대한 의존도로 인해 TurboDrive는 GigE Vision, USB3 Vision, Camera Link HS 등에서 제공하는 신뢰할 수 있는 전송 채널이 있어야 한다. 모든 전송 오류는 전송 링크 계층에서 관리된다. TurboDrive 디코딩 엔진은 디지털 신호에 오류가 없는지 항상 확인한다. 채널을 신뢰할 수 없다면 픽셀에서의 전송 오류는 주변 픽셀로 퍼져 잘못된 값의 클러스터를 생성한다. 이것이 바로 TurboDrive가 신뢰할 수 있는 전송 매체와 함께 사용하도록 설계된 이유이다.

 

TurboDrive 원리 #3 : 신뢰할 수 있는 채널

TurboDrive는 상대적인 인코딩에 의존하므로 위의 원칙이 필요하다. 반면, 하나의 픽셀이 인코딩된 정보는 절대적인 인코딩과 같이 픽셀을 완벽하게 설명하는데 충분하지 않다. 따라서 픽셀을 재구축하려면 인접 픽셀로부터의 보충 정보가 필요하다. 인코딩하기 전과 디코딩하고 난 후의 데이터는 같지만, 더 효율적인 데이터 패킹은 주변 효과를 고려함으로써 실현될 수 있다.

대역폭 한계 타파
위의 원리 3개는 TurboDrive를 구현하는 데에 충분하지만, 카메라 인터페이스의 최대 처리량을 초과하기에는 완벽하지 않다. 대부분의 머신 비전 카메라는 통신 링크 용량을 초과하지 않는 Frame rate로 이미지를 획득하도록 설계되어 있다. 따라서 이미지 획득과 이미지 전송은 분리하여 생각할 수 없다. 다시 말해, 이 방법은 아날로그와 Camera Link 카메라에서 유래되었다.

 

TurboDrive를 최대한 활용하려면 절대적인 인코딩을 사용할 때 전송 속도보다 카메라가 더 빠른 속도로 이미지를 획득해야 한다. 이 기능을 ‘버스트(Burst) 모드’라고 한다. 이 기능을 사용하면 전송 링크에서 추가적인 정보를 패킹하는 TurboDrive의 영역 상대 인코딩 방식을 활용할 수 있다. 이를 통해 빠르게 이미지를 획득하고 전송할 수 있다. 인코딩하기 위해 8 bit보다 더 적은 비트 수를 각 픽셀이 가지므로 GigE Vision 카메라가 115MB/s를 초과할 수 있다.
이러한 장점을 실현하려면 카메라에 내장 버퍼링 기능이 있어야 한다. 이 버퍼들은 픽셀 정보를 축적하는 데 사용된다. 카메라 인터페이스의 최대 처리량 한계 내로 평균 전송 속도를 생성하는 데 도움을 주기 위해 버퍼는 인코딩 변동을 부드럽게 하는 인코딩 레벨 변동을 보상하는 장점이 있다. 그리고 카메라가 이미지 사이의 데드 타임을 사용하여 전송을 계속하고 내부 버퍼의 정보를 계속 빼내어 전송 링크를 활용한다.

TurboDrive 원리 #4 :
버스트 모드 (Burst mode)

충분한 버퍼링을 사용할 수 있으면 카메라 인터페이스의 최대 전송 속도에 맞출 수 있도록 데드 타임을 포함한 상대적인 인코딩 이후 평균 처리량이 목표가 된다. 모든 Teledyne DALSA의 TurboDrive 기술을 사용할 수 있는 카메라들은 센서의 최대 성능을 보장하기 위해 향상된 획득 속도를 제공하기 위해 이 네 번째 원리를 지원한다.

성능 분석
이 부분에서 우리는 위에서 설명한 이론의 수학적 모델과 TurboDrive를 비교한다. 목적은 일반적인 머신 비전 이미지와 함께 사용할 때 TurboDrive 실제 처리량 증가를 특성화하는 것이다. 이를 실현하기 위해 수치 계산을 위해 무료로 사용할 수 있는 해석 언어인 Octave를 사용한다. 이 언어는 MatlabⓇ과 매우 비슷하다. 수학적 모델에서 처리량 향상을 계산하는 데에 Octave를 사용할 것이다. Teledyne DALSA 는 TurboDrive를 사용하여 처리량 향상을 결정할 수 있는 도구를 제공한다. 수학적 모델과 TurboDrive에 같은 이미지를 공급함으로써, 이 선형 관계는 2개 방식 모두에 연결되어 생성된다. 이 방정식은 간단한 수학 모델을 사용하여 예상되는 TurboDrive의 성능 향상을 얻을 수 있는 예측 기법으로 사용할 수 있다.
이 글에서 제시한 수학 모델로 달성할 수 있는 이론적인 처리량 향상을 계산하기 위해 <그림 6>의 목록은 Octave 스크립트 파일을 제공한다. 검사할 모든 이미지 파일은 같은 폴더에 있어야 한다. 해당 파일을 통해 스크립트를 반복하고 처리량 향상을 보고한다.

TurboDrive Perfomance Tool을 사용하여 처리량 향상을 알아내기 위해 TurboDrive 도구에 같은 이미지들을 공급한다.

바코드, OCR, ITS, 전자 제품 검사 등 다양한 머신 비전 애플리케이션에서 캡처한 98개의 이미지 집합을 2개 방식 모두에 실행하였다. <그림 8>의 그래프는 이론적 모델(x축)과 비교한 TurboDrive의 처리량 비율(y축)을 나타낸다.
이 그래프 TurboDrive와 수학적 모델 사이에 상당한 선형 관계가 있음을 나타낸다. 이 상관관계는 모델이 TurboDrive의 성능을 아주 잘 예측할 수 있도록 사용될 수 있을 만하다는 것을 나타낸다.
이 데이터에서 단순 선형 회귀 분석을 수행한다. 최소 제곱 추정 방식을 사용하여 TurboDrive와 수학적 모델 사이의 방정식을 만들 수 있다.

분석된 이미지 세트를 기반으로, <그림 8>에서 b0과 b1에 대해 다음 값을 추출할 수 있다.
● b0=0.6366(교차점)
● b1=0.5595(기울기)

판별 계수(R2)는 0.636과 같다. 이 계수는 통계 모델에 데이터가 얼마나 잘 맞는지를 나타낸다. 이 경우, 63.6%의 TurboDrive 처리량 증가를 모델로부터 예측할 수 있다. Throughputmodel이 1.25~4.0의 확장 범위에 있을 때 공식 4는 유효하다. TurboDrive가 지정된 이미지 클래스에 제공해야 하는 평균 처리량 향상의 근사값을 얻기 위해 <그림 6>에서 표현된 수학적 모델과 결합한 이 공식을 사용할 수 있다. 반면 이 그림에서 고객의 애플리케이션에서 속도를 높이기 위해 TurboDrive가 할 수 있는 정도를 추정할 수 있다.

 

TurboDrive 혜택
2015년 봄에 Linea GigE Line scan 카메라와 Sapera LT 8.0을 출시하면서 TurboDrive를 소개하였다. 이 글에서 설명한 기술들을 활용하여 Linea GigE 카메라는 이 제품 클래스에서 일반적으로 볼 수 있는 115MB/s 처리량의 벽을 뛰어넘었다.

예를 들어, Linea Mono 4K GigE는 일반적으로 기가비트 이더넷 링크 속도 때문에 26kHz로 제한되어 있다.
TurboDrive를 활성화하고, 가상 프레임 사이의 데드 타임을 고려하여 회선 속도가 낮은 이미지 엔트로피 장면의 80kHz에 도달할 수 있다.
이것은 Linea Camera Link 모델에 따라 제공되는 동일한 회선 속도이다. 그러나 GigE Vision의 긴 케이블과 낮은 시스템 비용(GigE 비전을 위해 요구되지 않는 프레임 그래버)은 추가 이익이다. 

중요한 장점 중 하나는 바로 TurboDrive의 애플리케이션 코드가 완전히 공개되어 있다는 것이다. 모든 작업은 Sapera LT의 빌딩 블록인 Teledyne DALSA의 GigE Vision 드라이버 내에서 수행된다. <그림 11>과 같이 CamExpert에서 Turbo Transfer Mode를 TRUE로 설정하거나 직접 turboTransferEnable GenICam 기능을 관리하여 TurboDrive를 사용하도록 설정할 수 있다. TurboDrive를 사용하도록 설정하면 Sapera LT는 카메라와 통신하여 지원할 TurboDrive 버전을 확인하고 인코딩 방식을 공유한다. 소스 코드를 수정하거나 컴파일을 다시 할 필요 없이 기존 Sapera LT 애플리케이션이 직접 TurboDrive의 혜택을 누릴 수 있다. 호스트 버퍼에 입력되는 데이터가 같으므로 TurboDrive를 사용하거나 사용하지 않도록 설정할 수 있다. 하지만 차이는 도달할 수 있는 최대 처리량이다.

TurboDrive의 다른 용도로는 멀티 카메라 시스템이 있다. 이더넷 스위치(Ethernet switch)를 사용하여 여러 대의 카메라에서 하나의 NIC(Network interface card)로 입력되는 이미지 스트림을 결합할 수 있다. TurboDrive로 인코딩하면 이러한 카메라에서 집계된 처리량은 GigE Vision의 최대 연결 속도인 115 MB/s를 초과하지 않는다. 일부 머신 시스템의 경우, 여러 대의 NIC를 사용하는 것보다 비용을 줄일 수 있다.

GigE Vision과 같이 신뢰할 수 있는 전송 매체를 사용하는 경우 각 픽셀이 세기로 표시되는 기존 절대적인 인코딩에서 정보의 손실 없이 디코딩된 이미지가 촬영한 이미지와 비트 단위까지 같은 중복을 기반으로 하는 더욱 효율적인 데이터 인코딩 방식으로 전환할 수 있다.
카메라의 처리량을 향상할 수 있도록 TurboDrive는 이미지 엔트로피와 인접 픽셀 변동을 결합한 효과를 활용한다. 이 실험에서 사용된 이미지 집합이 일반적으로 120%에서 235%까지 향상된 성능 수준을 낼 수 있다는 것을 이미 증명하였다.
기가비트 이더넷 연결을 통해 표준 GigE Vision에서 사용할 수 있는 115MB/s의 처리량은 138MB/s에서 270MB/s까지의 TurboDrive로 사용할 수 있는 대역폭을 나타낸다.

자료제공 | 앤비젼(www.envision.co.kr)






















주요기사

먼저 비밀번호를 입력하여 주세요.

창닫기확인