Operator Overflow

연산자 라이브러리: 동기화

Overflow 오퍼레이터는 중단할 수 없는 수신 2D 데이터 스트림을 때때로 차단될 수 있는 후속 이미지 처리 파이프라인과 분리합니다. 발신 데이터가 차단되어 내부의 작은 버퍼가 가득 차게 되는 오버플로 상황을 식별합니다. 오버플로가 발생하면, 행 끝 및 프레임 끝 마커를 즉시 추가하여 진행 중인 프레임을 잘라냅니다. 해당 프레임은 손상된 것으로 간주되며 이에 따라 이벤트가 생성됩니다. 출력 차단이 유지되는 동안 새로운 프레임이 입력 I로 들어오면 프레임이 건너뛰어집니다. 그러면 누락된 프레임에 대한 이벤트가 생성됩니다.

실용적인 지침은 Stoppable and Non-Stoppable Data Streams 튜토리얼 항목을 참조하십시오.

[주의] 오버플로로 인한 비사각형 프레임 발생

오버플로 상황으로 인해 수신 프레임이 잘릴 때, 발신 프레임의 마지막 라인은 일반적으로 다른 라인보다 짧습니다. 후속 이미지 처리 파이프라인이 이를 처리할 수 있는지 확인하십시오.

손상되거나 누락된 각 프레임에 대해 오버플로 이벤트가 생성됩니다. 오버플로 이벤트는 프레임 번호와 오버플로 유형으로 구성된 데이터 페이로드를 전달합니다. 이벤트 페이로드는 3개의 16비트 데이터 워드로 제공됩니다. 처음 두 개는 프레임 번호에 대한 32비트 값을 나타내며, 가장 비트가 적은 하위 비트는 첫 번째 워드에 저장됩니다. 세 번째 16비트 워드는 마스크 비트가 다음과 같이 정의되는 오버플로 마스크를 제공합니다.

  • [0]: 손상된 프레임

  • [1]: 누락된 프레임

  • [2]: 이전에 이벤트 손실 발생

  • [3]: 정상 프레임

  • [4] .. [15]: 예약됨

프레임 번호는 Acquisition Start 시점에 초기화됩니다. 또한 DMA 전송은 프레임 번호 1로 시작하는 반면, 첫 번째 프레임의 프레임 번호는 0이 됩니다. 프레임 번호는 32비트 값입니다. 최대값에 도달하면 다시 0부터 시작합니다. 64비트 대상 런타임에서는 DMA 전송 번호가 64비트 값이 됩니다. frame corrupted이 설정된 경우, 이벤트의 프레임 번호를 가진 프레임이 손상되었으며, 즉 전체 길이를 가지지 않으므로 후속 처리가 잘못된 결과를 생성할 수 있습니다. frame lost 플래그가 설정된 경우, 이벤트의 프레임 번호를 가진 프레임이 완전히 폐기되어 후속 처리 파이프라인이 해당 프레임으로부터 어떠한 데이터도 수신하지 못했습니다. corrupted frame 플래그와 frame lost 플래그는 동일한 이벤트에 대해 동시에 발생하지 않습니다. event loss occured before 플래그는 추가적인 보안 메커니즘입니다. 이는 이벤트가 손실되었음을 의미합니다. 이는 매우 높은 이벤트 속도에서만 발생할 수 있으며 일반적인 조건에서는 발생하지 않아야 합니다.

I/O Properties

Property Value
Operator Type M
Input Link I, 중단할 수 없는 데이터 입력
Output Link O, data output

Supported Link Format

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

Parameters

EventsForSuccessfulFrame
Type 동적 읽기/쓰기 파라미터
Default OFF
Range [OFF, ON]

통과하는 모든 프레임에 대해 이벤트를 생성할지 여부를 정의합니다.

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

오버플로 이벤트가 발생했음을 알립니다.

이 파라미터는 읽기 액세스 후에 재설정되므로 이전 읽기 액세스와 현재 읽기 액세스 사이에 오버플로 상황이 발생했는지 여부를 보여줍니다.

사용 예제

Operator Overflow의 사용법은 다음 예제에 나와 있습니다: