Operator ModuloCount

Operator Library: Accumulator

ModuloCounter는 입력 링크의 픽셀, 라인 또는 프레임 수를 셉니다. 카운트 시퀀스는 모듈로 제수(modulo divisor)에 의해 제한됩니다. 시퀀스가 반복되기 전에 Counter가 가질 수 있는 고유 상태의 수는 모듈로 제수에 의해 정의됩니다. 모듈로 제수는 Divisor 파라미터로 정의됩니다. 예를 들어 모듈로 제수가 4인 경우 "n MOD 4", 즉 0, 1, 2, 3, 0, 1, 2, 3, 0, 1, 2, 3 ...을 셉니다.

출력 프레임의 이미지 크기는 항상 입력 프레임의 이미지 크기와 동일합니다. 출력의 픽셀 데이터는 Counter 결과를 나타냅니다. 픽셀 값은 사용되지 않으며, 계산에는 픽셀, 라인 또는 프레임 인덱스만 고려됩니다.

Counter는 항상 값 0에서 시작합니다. CountEntity 파라미터를 구성하여 입력 링크의 모든 픽셀, 라인 또는 프레임을 카운트하도록 설정할 수 있습니다. 예를 들어 CountEntity 파라미터가 PIXEL로 설정된 경우, 오퍼레이터는 입력의 모든 píxel(픽셀)과 함께 Counter를 증가시킵니다.

CountEntity가 LINE으로 설정된 경우, Counter는 모든 라인의 시작 부분에서 증가하므로 입력 링크의 라인을 셉니다. 예를 들어 모듈로 제수가 4이면 라인 0의 모든 픽셀은 값 0을 가지게 됩니다. 라인 1의 픽셀은 값 1을 가지는 식입니다. 그러나 라인 4의 픽셀은 다시 픽셀 값 0을 가집니다.

CountEntity가 FRAME으로 설정된 경우, Counter는 모든 프레임의 시작 부분에서 증가합니다.

다음 예에서는 오퍼레이터의 사용법을 설명합니다. 첫 번째 예는 이미지 너비와 이미지 높이가 8픽셀인 두 개의 연속 프레임을 보여줍니다. 모든 픽셀 값은 숫자로 표시됩니다. 프레임 인덱스 0은 초기 프레임, 즉 Acquisition Start 직후의 첫 번째 프레임을 나타냅니다.

  • 구성: Divisor = 6, CountEntity = PIXEL, AutoClear = EoF

    이 예에서 볼 수 있듯이, 파라미터 CountEntity가 PIXEL로 설정되면 Counter는 모든 픽셀과 함께 증가합니다. Divisor가 6으로 설정되어 있으므로 결과 값은 0에서 5 사이의 범위입니다. 두 번째 프레임에서는 프레임 끝에서 Counter가 재설정되므로 오퍼레이터가 0부터 다시 시작합니다.

  • 구성: Divisor = 6, CountEntity = LINE, AutoClear = NONE

    이 예에서 오퍼레이터는 픽셀 대신 라인을 셉니다. 따라서 이미지의 모든 픽셀은 라인 번호를 나타냅니다. 여기서 파라미터 AutoClear는 NONE으로 설정됩니다. 따라서 오퍼레이터는 첫 번째 이미지 라인에서 재설정되지 않고 두 번째 프레임에서 계속해서 라인을 셉니다.

  • 구성: Divisor = 6, CountEntity = FRAME, AutoClear = NONE

    마지막 예는 프레임 카운팅을 보여줍니다. 여기서 모든 픽셀의 값은 프레임 번호를 나타냅니다.

획득(acquisition) 중에 Divisor 파라미터가 변경되면, 새 값은 다음 프레임이 시작될 때 적용됩니다. 1D 입력의 경우, 새 값은 다음 라인에 적용됩니다. 입력에 0D 데이터가 있는 경우, 새 Divisor 값이 즉시 적용됩니다.

Image Restrictions

  • Empty Images

    픽셀이 없는 빈 이미지는 허용되지 않습니다.

I/O Properties

Property Value
Operator Type O
Input Link I, Image Input
Output Link O, Data Output

Supported Link Format

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

1

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

Parameters

Divisor
Type 정적/동적 쓰기 파라미터
Default 1
Range [1..2^OutputBitWidth]

이 파라미터는 모듈로 연산의 제수를 정의합니다. 제수 값은 2^OutputBitwidth보다 작거나 같아야 합니다.

CountEntity
Type static parameter
Default PIXEL
Range {PIXEL, LINE, FRAME}

이 파라미터는 오퍼레이터 Counter가 모든 픽셀, 모든 라인에 대해 활성화되는지 또는 프레임당 한 번만 활성화되는지 정의합니다.

FRAME 옵션은 VALT_IMAGE2D 이미지 프로토콜에서만 사용할 수 있습니다. LINE은 VALD_IMAGE2D 및 VALT_LINE1D 이미지 프로토콜에서만 사용할 수 있습니다. VALT_PIXEL0D 이미지 프로토콜의 경우 파라미터가 항상 픽셀을 셉니다.

AutoClear
Type static parameter
Default NONE
Range {EoL, EoF, NONE}

AutoClear 옵션을 사용하면 라인 끝, 프레임 끝에서 Counter를 0으로 재설정하거나 재설정을 전혀 수행하지 않을 수 있습니다.

CountEntity가 PIXEL로 설정된 경우 이 파라미터의 세 가지 옵션을 모두 선택할 수 있습니다. CountEntity가 LINE으로 설정된 경우 EoF 및 NONE 옵션을 사용할 수 있습니다. CountEntity가 FRAME인 경우 오퍼레이터의 자동 지우기(auto clear)는 사용할 수 없습니다.

VALT_LINE1D image protocol을 사용하는 경우 프레임 끝에서 clear를 수행할 수 없습니다. VALT_PIXEL0D에서는 operator의 auto clear를 사용할 수 없습니다.

사용 예제

operator ModuloCount의 사용법은 다음 예시와 같습니다.