ImageInjector Operator

Operator Library: Debugging

ImageInjector 연산자를 사용하면 연산자의 이미지 데이터 출력에 이미지를 주입할 수 있습니다. 이미지는 파일에서 직접 주입할 수 있습니다(파일 형식: *.tif). Framegrabber API 또는 Framegrabber SDK 도구인 microDisplay를 통해 주입 명령을 내릴 수 있습니다.

ImageInjector 연산자는 VisualApplets에서 디자인을 시뮬레이션할 때 사용하는 Simulation Sources와 유사하게 작동합니다. 단, ImageInjector 연산자는 런타임 중 테스트 용도로 사용됩니다.

삽입(Insertion)과 교체(Replacement)의 두 가지 주입 방식이 지원됩니다.

Insert modes: 삽입 모드 중 하나가 활성화되면 입력 링크가 차단됩니다.

Replacement modes: 교체 모드 중 하나가 활성화되면 연산자는 이미지 주입 중에 이미지 싱크(Sink) 역할을 합니다. 입력 링크는 차단되지 않습니다.

주입된 이미지 데이터는 WritePixel 및 WriteFlag 레지스터에 기록하여 픽셀 단위로 삽입됩니다. 쓰기 레지스터는 파라미터 ReadyForInjection이 "yes"로 전환된 경우에만 활성화됩니다. (파라미터 ReadyForInjection 이 "yes"로 설정되는 시점을 알아보려면 파라미터 Mode를 참조하세요.)

주입된 이미지의 각 라인 끝(마지막 라인 제외)에서 EndOfLine 플래그를 WriteFlag 레지스터에 기록해야 합니다. 마지막 라인의 끝에 도달하면 EndOfFrame 플래그를 WriteFlag 레지스터에 기록해야 합니다.

CurrXPos 및 CurrYPos 파라미터는 현재 활성화된 픽셀 위치를 가리킵니다.

[참고] 파라미터 EnableInsertModes는 연산자의 유형을 M-type에서 P-type으로 변경합니다.

ImageInjector 연산자는 M-type 연산자입니다. 그러나 EnableInsertModes를 "no"로 설정하면 VisualApplets에서 해당 연산자가 P-type 연산자처럼 처리됩니다.

[참고] 주입 모드 비활성화

기본 모드인 FlowThrough로 다시 전환(즉, 모든 종류의 주입 비활성화)은 파라미터 ReadyForFlowThrough가 "yes"로 설정된 경우에만 허용됩니다.

[중요] 런타임 테스트

이 Operator는 런타임 중에 디자인을 테스트하고 분석하도록 설계되었습니다. 디자인을 빌드(합성)하고, 타겟 하드웨어에 로드한 후, 실제 이미지 처리를 시작해야 디버깅에 Operator를 사용할 수 있습니다.

이 Operator는 VisualApplets 내의 디자인 시뮬레이션용이 아닙니다.

I/O Properties

Property Value
Operator Type M
Input Link I, 이미지 데이터 입력
Output Link O, 이미지 데이터 출력

Supported Link Format

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

Parameters

Mode
Type dynamic write parameter
Default FlowThrough
Range {FlowThrough, InsertAfterEof, InsertAfterEol, ReplaceAfterEof, ReplaceAfterEol}

이 모드 파라미터는 이미지 주입을 활성화 및 비활성화합니다. 이미지 주입 중에 연산자는 입력 링크를 차단하거나(InsertAfterEof, InsertAfterEol) 주입 중에 들어오는 이미지 데이터를 폐기합니다(ReplaceAfterEof, ReplaceAfterEol).

Inject: 이 모드에서 연산자는 즉시 입력 링크를 차단하고 파라미터 ReadyForInjection을 "yes"로 설정합니다. ReadyForInjection이 "yes"로 설정되는 즉시 파일에서 이미지를 주입할 수 있습니다.

FlowThrough: 이미지 주입이 비활성화됩니다. 기본 모드인 FlowThrough로 다시 전환(즉, 모든 종류의 주입 비활성화)은 파라미터 ReadyForFlowThrough가 "yes"로 설정된 경우에만 허용됩니다.

InsertAfterEof: 이 모드로 설정하면 연산자는 EoF(End-of-Frame) 플래그를 찾습니다. EoF 플래그를 찾는즉시(즉, 현재 이미지의 끝에 도달했을 때) 연산자는 입력 링크를 차단하고 파라미터 ReadyForInjection 을 "yes"로 설정합니다. ReadyForInjection이 "yes"로 설정되는 즉시 파일에서 이미지를 주입할 수 있습니다. 이 모드는 LINE-1D 이미지 프로토콜에서는 사용할 수 없습니다. 이 모드는 파라미터 EnableInsertModes가 "yes"로 설정된 경우에만 사용할 수 있으며, 이는 연산자가 M 타입임을 의미합니다.

InsertAfterEol: 이 모드로 설정하면 연산자는 EoL(End-of-Line) 플래그를 찾습니다. EoL 플래그를 찾는즉시(즉, 현재 라인의 끝에 도달했을 때) 연산자는 입력 링크를 차단하고 파라미터 ReadyForInjection 을 "yes"로 설정합니다. ReadyForInjection이 "yes"로 설정되는 즉시 파일에서 이미지를 주입할 수 있습니다. 이 모드는 LINE-1D 이미지 프로토콜에서는 사용할 수 없습니다. 이 모드는 파라미터 EnableInsertModes가 "yes"로 설정된 경우에만 사용할 수 있으며, 이는 연산자가 M 타입임을 의미합니다.

사용 가능한 두 가지 교체 모드 중 하나로 설정하면 연산자는 이미지 주입 중에 이미지 싱크(Sink) 역할을 합니다.

ReplaceAfterEof: 연산자는 현재 이미지가 끝날 때까지 대기합니다. EoF 플래그를 찾는 즉시 연산자는 파라미터 ReadyForInjection 을 "yes"로 설정합니다. ReadyForInjection이 "yes"로 설정되는 즉시 파일에서 이미지를 주입할 수 있습니다. 주입 중에는 들어오는 이미지 데이터가 폐기됩니다. LINE-1D 이미지 프로토콜에서는 사용할 수 없습니다.

ReplaceAfterEol: 연산자는 현재 라인이 끝날 때까지 대기합니다. EoL 플래그를 찾는 즉시 연산자는 파라미터 ReadyForInjection 을 "yes"로 설정합니다. ReadyForInjection이 "yes"로 설정되는 즉시 파일에서 이미지를 주입할 수 있습니다. 주입 중에는 들어오는 이미지 데이터가 폐기됩니다.

EnableInsertModes
Type static write parameter
Default 표시된 패킷 크기 값은 카메라에
Range {yes, no}

"yes"로 설정하면 파라미터 Mode를 삽입 모드인 InsertAfterEof 또는 InsertAfterEol로 설정할 수 있습니다. 이 경우 연산자는 M 타입이 됩니다. "no"로 설정하면 파라미터 Mode에 대해 이 두 가지 삽입 모드가 허용되지 않으며, 연산자는 P 타입이 됩니다.

ReadyForInjection
Type 동적 읽기 파라미터
Default 표시된 패킷 크기 값은 카메라에
Range {yes, no}

파라미터 Mode가 삽입 또는 교체 모드일 때 픽셀이나 플래그를 기록할 준비가 되었음을 나타냅니다. 파라미터 WritePixel 및 WriteFlag를 활성화하려면 "yes"로 설정해야 합니다.

ReadyForFlowThrough
Type 동적 읽기 파라미터
Default 표시된 패킷 크기 값은 카메라에
Range {yes, no}

파라미터 Mode의 FlowThrough 모드로 다시 전환할 준비가 되었음을 나타냅니다.

파라미터 WriteFlag 설정 시 파라미터가 자동으로 "yes"로 설정됩니다.

  • IMAGE-2D 모드에서는 EndOfLine이 기록되거나,
  • LINE-1D 모드에서는 EndOfLine이 기록됩니다.

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

현재 라인 위치를 표시합니다.

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

현재 이미지 높이 위치를 표시합니다.

WritePixel
Type dynamic write parameter
Default 0
Range [0, 2^BitWidth-1]

픽셀 값입니다. 24 bit Color Format을 사용하는 경우, 다음과 같은 비트 매핑을 적용해야 합니다: Red = [0, 7], Green = [9,15], Blue = [16,23].

WriteFlag
Type dynamic write parameter
Default EndOfLine
Range {EndOfLine, EndOfFrame}

이미지의 마지막 라인 끝을 제외하고, 주입되는 각 라인의 끝에 EndOfLine 플래그를 기록해야 합니다.

주입되는 이미지의 마지막 라인 끝에 EndOfFrame 플래그를 기록해야 합니다.

이 파라미터는 파라미터 ReadyForFlowThrough에도 영향을 미칩니다:

다음 조건에서 파라미터 ReadyForFlowThrough가 "yes"로 설정됩니다.

  • IMAGE-2D 모드에서는 EndOfLine이 기록되거나,
  • LINE-1D 모드에서는 EndOfLine이 기록됩니다.

[참고] 한 번에 하나의 플래그만 사용하십시오.

이미지 끝부분에서는 이 파라미터에 EndOfFrame 플래그만 기록하십시오.

EoL을 EoF와 함께 기록하지 마십시오. EoF에는 항상 EoL+EoF가 포함됩니다.

ImageFile
Type dynamic write parameter
Default image.tif
Range

주입할 이미지 파일입니다. 이미지 크기는 출력 링크 Property와 같거나 작아야 합니다. 이미지 파일의 픽셀 심도는 컴포넌트당 8 bit 또는 16 bit일 수 있습니다. 컴포넌트당 이미지 픽셀 심도가 링크 Property에 정의된 Bit Width와 일치하지 않는 경우, 링크 Property에 정의된 픽셀 컴포넌트에 최상위 비트(MSB)가 정렬되도록 이미지 컴포넌트가 이동합니다. microDisplay에서 파일을 선택하려면 파일 경로를 수동으로 설정하거나 이 파라미터를 마우스 우클릭하여 파일 선택 메뉴를 여십시오.

InjectFromFile
Type dynamic write parameter
Default 표시된 패킷 크기 값은 카메라에
Range {no, yes}

"yes"로 설정하면 이미지 파일이 출력 링크에 주입됩니다. FlowThrough 모드에서는 비활성화됩니다(즉, 파라미터 Mode가 FlowThrough로 설정된 경우).

사용 예제

ImageInjector 오퍼레이터의 사용법은 다음 예시에서 확인할 수 있습니다: