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 리소스의 사용 가능한 용량을 계산할 수 있습니다.
공식 및 측정 단위에 사용된 약어:
|
Frame Grabber RAM (DRAM)을 사용하는 연산자를 통과하는 이론적 대역폭[bits/second]은 다음 공식에 따라 계산됩니다.

그러나 실제 대역폭은 DRAM 효율로 인해 항상 이론적 대역폭보다 낮습니다.
연산자를 통과하는 최대 대역폭은 Bit Width와 Parallelism의 곱이 내부 RAM Port Width와 같을 때 도달됩니다.
![]() |
플랫폼별 값 |
|---|---|
|
RAM Port Width와 System Clock은 플랫폼별로 다릅니다. 개별 플랫폼에 대한 자세한 내용은 Device Resources를 참조하세요. |
|
부호 없는 입력의 경우 입력 Bit Width 범위는 [1, 64]입니다. 부호 있는 입력의 경우 범위는 [2, 64]입니다. 부호 없는 컬러 입력의 경우 범위는 [3, 63]이며, 부호 있는 컬러의 경우 범위는 [6, 63]입니다. |
|
|
Bit Width와 Parallelism의 곱은 기본 RAM 데이터 너비를 초과해서는 안 됩니다. 자세한 내용은 Device Resources를 확인하세요. |
| 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 오퍼레이터의 사용법은 다음 예시에 나와 있습니다.
-
시작하기
-
그림 29, '간단한 VisualApplets 디자인'
기본 원칙 - VisualApplets의 개념 이해하기
-
데이터 흐름 - VisualApplets에서 사용되는 파이프라인 구조 이해하기
-
동기화 규칙 - O-형태 네트워크에서의 오퍼레이터 사용.
-
무한 소스 - 오퍼레이터를 카메라에 연결하기. (DRC2 대기 시간 오류)
-
디자인 파라미터화
-
디자인 파라미터화 - 비활성화된 파라미터
-
디자인 파라미터화 - 잘못된 파라미터 값
-
오퍼레이터의 디바이스 리소스 할당에 대해 알아봅니다.
-
그림 201, 'Link Property 변경 후 잘못된 조건'
기본 가이드 기본 수집 - ImageBuffer operator에서의 잘못된 조건
-
예시 - 히스토그램 임계값 처리
-
예시 - 라인 스캔 어플리케이션에서 Blob_Analysis_1D 오퍼레이터의 사용법을 보여줍니다.
-
예시 - 블롭 분석 연산자가 입력 카메라 이미지에 적용됩니다. 이 애플릿은 애플릿 내에서 블롭 데이터의 사용법을 보여줍니다. 이 경우 최대 면적을 가진 객체가 위치 지정되며, 해당 좌표를 사용하여 원본 이미지에서 객체를 잘라냅니다.
-
'JPEG_Encoder 연산자를 이용한 JPEG 압축'
예시 - JPEG_Encoder 연산자의 사용법을 보여주는 간단한 예시입니다.
-
'User Library 요소를 사용한 JPEG 컬러 압축'
Examples - 컬러 JPEG 압축을 위한 JPEG user library 요소의 사용법을 보여주는 간단한 예제입니다.
-
Examples - microEnable4 및 5 플랫폼용으로 지원이 중단된 JPEG_Encoder_Gray 오퍼레이터의 사용법을 보여주는 간단한 예제입니다.
-
예제 - 이미지 치수가 측정되며 디자인 흐름을 분석하는 데 사용할 수 있습니다.
-
예시 - 이미지 타이밍이 제너레이터에 의해 제공되는 동안 디자인의 데이터 흐름을 분석할 수 있습니다.
-
Example - 디버깅 목적을 위해 이미지를 수동으로 삽입할 수 있습니다.
-
예시 - 연속된 두 이미지 간의 차이를 계산합니다. 차이값에 임계값이 적용되어 DMA 채널을 통해 출력됩니다.
-
'Filter for Line Scan Cameras'
예제 - 라인 스캔 카메라용 필터 구현 방법을 설명합니다.
-
예시 - High Speed의 견고한 레이저 라인 감지 알고리즘입니다. 이 알고리즘은 서브픽셀 해상도 결과를 얻기 위해 무게 중심 좌표를 결정합니다.
-
예제 - 이동 평균 - 루프

![[참고]](../common/images/admon/note.png)



이전

