Operator ImageBuffer

Operator Library: Memory

이 오퍼레이터는 Frame Grabber RAM (DRAM)에 이미지 스트림을 버퍼링합니다. RAM 유형의 VisualApplets 리소스가 하나 필요합니다. 자세한 내용은 'Allocation of Device Resources'를 확인하십시오. 이 오퍼레이터는 ROI(Region of Interest) 지원 기능도 제공합니다. 총 비트 수(bit width 곱하기 parallelism)는 해당 프레임 그래버의 메모리 제한을 초과해서는 안 됩니다.

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

이 오퍼레이터는 FIFO처럼 작동합니다. 모든 입력 데이터는 즉시 출력으로 전달됩니다. 그러나 예를 들어 후속 오퍼레이터가 입력 대역폭을 처리할 수 없어 출력이 차단된 경우, 오퍼레이터는 데이터를 저장합니다. 따라서 메모리는 오퍼레이터가 데이터를 출력할 수 없는 경우에만 채워집니다. 종종 이 오퍼레이터는 피크 입력 대역폭을 보상하는 데 사용됩니다.

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

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

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

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

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

Operator 제한 사항

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

[참고] 사용 가능한 Memory 공간

오퍼레이터에는 내부 데이터를 위한 추가 Memory 공간이 필요합니다. 따라서 사용된 RAM 리소스의 전체 양을 이미지 데이터 버퍼링에 사용할 수 없습니다. 버퍼링된 이미지 데이터에 실제로 사용할 수 있는 공간은 하드웨어 플랫폼(Platform RAM Size 및 Platform RAM Interface Width)과 링크 구성에 따라 다릅니다. Platform RAM Size 및 Platform RAM Interface Width에 대한 정보는 Device Resources를 참조하십시오.)

다음 공식을 사용하여 RAM 리소스의 사용 가능한 용량을 계산할 수 있습니다.

  • Utilized RAM Size [in Bytes] = ((PRS * 2^20 / (PRIW / 8 bit)) / RLS) * MIW * BW / 8

  • Utilized RAM Size [in Lines] = ((PRS * 2^20 / (PRIW / 8 bit)) / RLS)

  • Utilized RAM Size [in Frames] = ((PRS * 2^20 / (PRIW / 8 bit)) / RLS) / MIH

공식 및 측정 단위에 사용된 약어:

  • PRS: Platform RAM Size [in MB, 1MB = 2^20 Byte]

  • PRIW: Platform RAM Interface Width [in bit]

  • MIW: MaxImageWidth [in pixel]

  • MIH: MaxIMageHeight [in lines]

  • P: Parallelism

  • BW: BitWidth [in bit]

  • RLS: Raw Line Size: 2 ^ ceil(log2n(MIW / P + 4))

대역폭 최적화

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]12 as I
Arithmetic {unsigned, signed} as I
Parallelism any3 as I
Kernel Columns 1 as I
Kernel Rows 1 as I
Img Protocol {VALT_IMAGE2D, VALT_LINE1D} as I
Color Format any as I
Color Flavor any as I
Max. Img Width 65535 as I
Max. Img Height 65535 as I

1

부호 없는 입력의 경우 입력 Bit Width 범위는 [1, 64]입니다. 부호 있는 입력의 경우 범위는 [2, 64]입니다. 부호 없는 컬러 입력의 경우 범위는 [3, 63]이며, 부호 있는 컬러의 경우 범위는 [6, 63]입니다.

2 3

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의 높이를 정의합니다.

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'를 참조하십시오.

사용 예제

ImageBuffer 오퍼레이터의 사용법은 다음 예시에 나와 있습니다.