Operator ImageBufferSC

Operator Library: Memory

이 연산자는 라인 스캔 카메라를 사용할 때 자주 필요한 탭 정렬(=센서 보정) 기능을 제공합니다. 또한 ROI(Region of Interest) 지원 기능도 포함되어 있습니다. 총 비트 수(Bit Width 곱하기 Parallelism)는 해당 프레임 그래버의 메모리 제한을 초과해서는 안 됩니다.

이 연산자는 이미지 스트림을 Frame Grabber RAM (DRAM)에 버퍼링합니다. RAM 유형의 VisualApplets 리소스가 하나 필요합니다('Allocation of Device Resources' 참조).

탭 정렬 기능은 리드아웃 방식이 순차적 래스터 스캔 형식을 따르지 않는 센서를 투명하게 지원할 수 있게 해줍니다. 듀얼 탭 베이스 카메라(Parallelism 4 사용 시) 및 쿼드 탭 미디엄 카메라에 가장 널리 사용되는 리드아웃 방식을 지원합니다.

다른 Parallelism의 경우, 이 연산자를 다른 연산자와 조합하여 사용할 수 있습니다.

연산자 지연 시간에 대한 정보는 '표 46: Library Memory의 연산자별 지연 시간'을 참조하십시오.

이 연산자는 FIFO처럼 작동합니다. 모든 입력 데이터는 즉시 출력으로 전달됩니다. 그러나 후속 연산자가 입력 대역폭을 처리할 수 없어 출력이 차단되는 등의 이유로 출력이 막히면, 연산자가 데이터를 저장합니다. 따라서 메모리는 연산자가 데이터를 출력할 수 없는 경우에만 채워집니다. 이 연산자는 주로 피크 입력 대역폭을 보상하는 데 사용됩니다.

내부적으로 이미지 버퍼는 이미지 라인 단위로 작동합니다. 이러한 내부 라인 버퍼 기능으로 인해 메모리 지연 시간이 매우 짧습니다. 물론 버퍼에 더 많은 라인이 채워지면 지연 시간도 증가합니다. 예를 들어 메모리로 전송되는 이미지는 즉시 출력으로 전달됩니다. 애플리케이션에서 카메라가 나머지 이미지 라인을 전송하는 동안에도 부분적인 카메라 이미지를 PC로 전달할 수 있습니다.

XOffset, XLength, YOffset 및 YLength 파라미터를 사용하여 ROI 크기를 정의할 수 있습니다. 입력 이미지 너비가 XOffset과 XLength의 합보다 작더라도, 연산자는 매개변수화된 XLength를 계속 읽습니다. 이 경우 연산자는 초과된 픽셀에 대해 정의되지 않은 메모리 콘텐츠를 출력합니다. 입력 이미지 높이가 요청된 출력 이미지 높이보다 작으면 연산자는 사용 가능한 라인만 출력합니다.

Line1D 애플리케이션 모드에서는 YOffset 및 YLength 설정이 버퍼에 영향을 미치지 않습니다.

버퍼의 채워진 수준을 측정하기 위해 오퍼레이터는 FillLevel과 Overflow의 2가지 파라미터를 제공합니다. FillLevel은 RAM의 채워진 수준을 25% 단위의 백분율로 보여줍니다. Overflow 파라미터는 FillLevel이 100%에 가깝거나 도달했고 버퍼에 저장될 다음 이미지가 RAM 용량을 초과할 때 1로 설정됩니다. 오버플로가 발생하면 입력 데이터가 폐기되고 입력 이미지 높이가 줄어듭니다. 따라서 불완전한 이미지가 메모리에 저장됩니다. 사용자는 오버플로 파라미터를 폴링해야 합니다. 오버플로 상태의 지속 시간이 매우 짧을 수 있으므로 오퍼레이터의 폴링 주기 사이에 발생했다가 사라질 수 있습니다.

파라미터 InfiniteSource는 오퍼레이터가 카메라에 직접 연결되어 있는지 또는 다른 메모리 오퍼레이터와 시퀀스되어 있는지를 지정하는 데 사용됩니다. 자세한 내용은 'Infinite Sources / Connecting Cameras'를 확인하세요.

Operator 제한 사항

  • 빈 프레임은 지원되지 않습니다.

    라인 길이가 다른 이미지는 지원되지 않습니다.

    입력 라인 너비는 탭 수에 Parallelism을 곱한 값으로 나누어 떨어져야 합니다.

대역폭 최적화

Frame Grabber RAM (DRAM)을 사용하는 연산자를 통과하는 이론적 대역폭[bits/second]은 다음 공식에 따라 계산됩니다.

그러나 실제 대역폭은 DRAM 효율로 인해 항상 이론적 대역폭보다 낮습니다.

연산자를 통과하는 최대 대역폭은 Bit Width와 Parallelism의 곱이 내부 RAM Port Width와 같을 때 도달됩니다.

[참고] 플랫폼별 값

RAM Port Width와 System Clock은 플랫폼별로 다릅니다. 개별 플랫폼에 대한 자세한 내용은 Device Resources를 참조하세요.

I/O Properties

Property Value
Operator Type M
Input Link I, image data input
Output Link O, 데이터 입력

Supported Link Format

Link Parameter Input Link I Output Link O
Bit Width [1, 64] unsigned, [2, 64] signed1 as I
Arithmetic {unsigned, signed} as I
Parallelism 42 as I
Kernel Columns 1 as I
Kernel Rows 1 as I
Img Protocol VALT_IMAGE2D as I
Color Format VAF_GRAY as I
Color Flavor FL_NONE as I
Max. Img Width 65535 as I
Max. Img Height any as I

1 2

Bit Width와 Parallelism의 곱은 네이티브 RAM 데이터 너비를 초과해서는 안 됩니다. 자세한 내용은 Device Resources를 확인하십시오.

Parameters

XOffset
Type 동적/정적 읽기/쓰기 파라미터
Default 0
Range [0, Max.Img Width - XLength]

이 파라미터는 ROI의 왼쪽 상단 모서리의 x 좌표를 정의합니다.

스텝 크기는 Parallelism입니다.

XLength
Type 동적/정적 읽기/쓰기 파라미터
Default 1024
Range [2*parallelism, Max.Img Width - XOffset]

이 파라미터는 ROI의 너비를 정의합니다.

스텝 크기는 Parallelism입니다.

YOffset
Type 동적/정적 읽기/쓰기 파라미터
Default 0
Range [0, Max.Img Height - YLength]

이 파라미터는 ROI의 왼쪽 상단 모서리의 y 좌표를 정의합니다.

YLength
Type 동적/정적 읽기/쓰기 파라미터
Default 1024
Range [1, Max.Img Height - YOffset]

이 파라미터는 ROI의 높이를 정의합니다.

SensorCorrection
Type 동적 읽기/쓰기 파라미터
Default SMODE_UNCHANGED
Range

Available options are

이 파라미터는 연결된 카메라의 센서 리드아웃 스킴을 지정합니다. SMODE_UNCHANGED 및 SMODE_REVERSE는 싱글, 듀얼 및 쿼드 탭 카메라를 지원합니다. SMODE_TAPS2_x는 듀얼 탭(베이스) 카메라를 지원합니다. SMODE_TAP4_x는 쿼드 탭(미디엄) 카메라를 지원합니다.

FillLevel
Type 동적 읽기 파라미터
Default 0
Range [0%, 100%]

이 파라미터는 DRAM의 Fill 레벨을 25% 단위로 제공합니다.

Overflow
Type 동적 읽기 파라미터
Default 0
Range [0, 1]

이 파라미터는 버퍼 오버플로우를 나타냅니다.

InfiniteSource
Type static parameter
Default ENABLED
Range {ENABLED, DISABLED}

이 파라미터는 카메라 연산자와 같은 무한 소스 연산자에 대한 지원을 활성화합니다. 자세한 내용은 'Infinite Sources / Connecting Cameras'를 참조하십시오.

사용 예제

ImageBufferSC 연산자의 사용법은 다음 예시와 같습니다.