VisualApplets는 디자인 시뮬레이션을 위한 강력하고 유용한 시뮬레이션 기능을 제공합니다. 시뮬레이션을 사용하여 구현된 영상 처리 알고리즘을 1차적으로 테스트하고 검증할 수 있습니다. *.hap 파일을 빌드할 필요 없이 디자인 편집 직후에 시뮬레이션을 시작할 수 있습니다.
VisualApplets의 시뮬레이션은 기능적 시뮬레이션으로, 하드웨어 구현의 동작을 에뮬레이트합니다. 덕분에 로우 레벨 시뮬레이션에 비해 속도가 매우 빠릅니다. 기능적 시뮬레이션의 부수적인 효과로 타이밍은 고려되지 않습니다. 연산자의 시뮬레이션 동작은 실제 하드웨어에서 실행되는 최종 앱릿의 영상 처리와 100% 동일합니다.
VisualApplets에서 디자인의 동작을 시뮬레이션하기 위해 두 가지 종류의 시뮬레이션 요소가 제공됩니다.
-
시뮬레이션 소스(Simulation Sources) 및
-
시뮬레이션 프로브(Simulation Probes)
시뮬레이션 소스는 데이터 입력에 사용됩니다. 시뮬레이션 소스에 하나의 이미지 또는 전체 이미지 시퀀스를 로드할 수 있습니다(이미지 파일에서). 디자인의 모든 링크에 하나의 시뮬레이션 소스 또는 하나의 시뮬레이션 프로브를 배치할 수 있습니다. 따라서 해당 링크를 통한 데이터 전송은 연결된 소스 모듈에 의해 덮어쓰여지거나 각 프로브 모듈에 의해 검사됩니다.
![]() |
참고 |
|---|---|
|
일부 연산자는 CreateBlankImage 연산자와 같이 이미지 소스로 기능할 수도 있습니다. |
시뮬레이션 프로브의 결과 이미지를 이미지 파일로 저장할 수 있습니다.
시각화 최적화로 인해 VisualApplets 시뮬레이션은 2D 이미지를 기반으로 합니다.
그럼에도 불구하고, 시뮬레이션 소스가 연결된 링크가 0D(픽셀 스트림), 1D(라인 스트림) 또는 2D(프레임 스트림)인 경우에도 시뮬레이션 소스에 2D 이미지가 하나 이상 포함되어 있다면 시뮬레이션을 수행할 수 있습니다('Image Protocols, Image Dimensions and Data Structure' 참조).
시뮬레이션에는 다음과 같은 제한 사항이 있습니다.
-
SIGNAL 이미지 프로토콜의 시뮬레이션은 불가능합니다. 이는 SIGNAL 이미지 프로토콜의 시뮬레이션이 디자인의 타이밍이 아닌 기능성을 에뮬레이트하기 때문입니다. 하지만 SIGNAL 이미지 프로토콜을 시뮬레이션하려면 타이밍도 시뮬레이션해야 합니다.
-
0D 이미지 프로토콜의 시뮬레이션은 정확히 하나의 시뮬레이션 단계로 제한됩니다. 이는 시뮬레이션을 위해 하나의 소스에 있는 모든 픽셀 데이터가 단일 2D 프레임으로 집계되기 때문입니다. 하지만 나머지 디자인에 대해서는 후속 단계를 시뮬레이션할 수 있으며, 0D 콘텐츠를 생성하는 연산자는 첫 번째 단계에서만 데이터를 한 번 출력합니다.
-
PseudoRandomNumberGen 연산자는 하드웨어와 시뮬레이션에서 동일한 결과를 반환하지 않습니다. 이는 해당 연산자가 비결정적이기 때문입니다. 이 예외 사항은 Operator Reference에도 설명되어 있습니다.
-
Blob Analysis 1D 연산자는 하드웨어와 시뮬레이션에서 동일한 결과를 반환하지 않습니다. 이는 해당 연산자에 FlushI 포트가 있지만 플러시가 이미지 데이터와 비동기식으로 작동하므로 하드웨어와 동일한 동작을 반영하도록 시뮬레이션할 수 없기 때문입니다. 이 예외 사항은 Operator Reference에도 설명되어 있습니다.
VisualApplets의 시뮬레이션에서는 소스 이미지용 및 출력 이미지 저장용으로 다음과 같은 이미지 형식이 지원됩니다.
- Bitmap
-
BMP1비트 흑백(행 길이는 8의 배수여야 함)BMP8비트 그레이BMP24비트(R8 G8 B8) sRGB 색상 공간BMP 파일을 저장할 때는 RLE 압축이 지원되지 않습니다.
- TIFF(Tagged Image File Format)/TIF
-
TIFF1비트 흑백(행 길이는 8의 배수여야 함)TIFF8비트 그레이TIFF24비트 색상 sRGB 색상 공간TIFF48비트 색상 sRRB 색상 공간압축: 없음(None), LZW, ZIP/Deflate 또는 JPEG
- JPEG/JPG
- PNG
또한, .raw 시뮬레이션 프로브용으로 임시 생성된 파일을 시뮬레이션 소스에 로드할 수 있습니다.
디자인에서 이미지 데이터 처리를 시뮬레이션하는 과정은 다음 단계로 구성됩니다.
-
디자인에 필요한 시뮬레이션 소스 및 프로브 삽입.
-
시뮬레이션에 사용할 이미지 파일을 시뮬레이션 소스에 로드합니다.
-
픽셀 병합(pixel merge) 및 픽셀 정렬(pixel alignment)과 같은 파라미터를 통해 이미지 입력을 최적화합니다.
-
메인 시뮬레이션 창에서 시뮬레이션의 처리 주기(processing cycles) 수를 설정하고 시뮬레이션을 시작합니다.
-
시뮬레이션 결과 평가.
-
시뮬레이션 결과 저장.
다음 섹션에서는 이러한 단계에 대해 자세히 설명합니다.
시뮬레이션을 준비하려면 먼저 디자인에 시뮬레이션 소스 및 프로브를 삽입해야 합니다.
-
메인 메뉴에서 → 를 선택하거나 툴바의 해당 아이콘을 사용하여 현재 디자인 창에 소스 및 프로브를 삽입합니다.
시뮬레이션 소스와 시뮬레이션 프로브는 모두 마그네틱 앵커가 있는 작은 이미지 프레임으로 표시됩니다.
-
앵커를 사용하여 소스나 프로브를 디자인의 링크에 연결합니다. 소스는 회색, 프로브는 녹색으로 표시되므로 시뮬레이션 소스와 시뮬레이션 프로브를 쉽게 구분할 수 있습니다.
-
드래그앤드롭을 사용하여 소스 및 프로브를 배치합니다.
-
드래그앤드롭을 사용하여 소스 및 프로브를 디자인의 링크에 연결합니다. 앵커 아이콘이 파란색으로 바뀌면 유효한 연결입니다.
![]() |
커널 또는 신호를 전송하는 링크에 시뮬레이션 소스 및 프로브 연결 |
|---|---|
|
커널을 전송하는 링크에 시뮬레이션 소스를 연결할 수 있지만, 시뮬레이션 소스는 커널당 정확히 하나의 입력 이미지를 제공해야 합니다. 신호를 전송하는 링크에 시뮬레이션 프로브를 연결할 수 있지만, 이 경우 시뮬레이션 프로브는 데이터를 제공하지 않습니다. |
에서 Test Images 또는 테스트 이미지 시퀀스를 로드하여 시뮬레이션에 사용할 수 있습니다.
먼저 를 간단히 살펴보겠습니다.
-
를 열려면 디자인의 소스를 더블클릭합니다.
가 열립니다:
메뉴 바로 아래에 툴바가 있습니다. 툴바의 아이콘은 (왼쪽부터 순서대로) 다음과 같은 옵션을 제공합니다:
-
이미지 파일을 열고 저장하기 위한 파일 툴바입니다.
-
이미지 표시에 대한 다양한 옵션을 제공하는 보기 툴바입니다. 보기 메뉴의 첫 번째 옵션들과 동일합니다:
-
이미지 시퀀스를 탐색하기 위한 화살표입니다.
-
메인 뷰어 창의 디스플레이 패널(및 돋보기)에 현재 표시된 이미지의 세부 정보 표시: 시뮬레이터에 로드된 이미지 시퀀스에서 이미지의 위치와 이미지 파일의 경로를 표시합니다.
왼쪽에는 두 개의 탭이 있는 설정 패널이 있습니다:
- Image File – Mapping
-
여기서 시뮬레이션 설정을 조정할 수 있습니다(예: 픽셀 병합(pixel merge) 값 입력 또는 픽셀 정렬을 위한 오프셋 정의).
- Display Properties
-
여기서는 사용자 화면에 Test Images를 표시하기 위한 설정을 정의할 수 있습니다. 모니터는 항상 8비트 색상 디스플레이를 사용하므로, Test Images를 평가하기 위해 픽셀의 어느 부분을 화면에 표시할지 결정해야 하는 경우가 있습니다. 에서 정의한 설정은 시뮬레이션이나 그 결과에 아무런 영향을 미치지 않습니다.
또한 여기서는 선택한 픽셀의 색상 값과 디스플레이 값이 표시 값과 함께 나열됩니다. 디스플레이 값은 사용자 모니터에 표시하기 위해 매핑된 값입니다.
오른쪽에는 현재 선택된 이미지를 표시하는 디스플레이 패널이 있습니다.
툴바의 해당 아이콘을 사용하거나 CTRL+MouseWheelUp으로 확대하고 CTRL+MouseWheelDown으로 축소하여 디스플레이 채널에 표시된 이미지를 확대 및 축소할 수 있습니다.
매우 높은 확대 비율을 선택하면 방향을 더 쉽게 파악할 수 있도록 픽셀 격자가 표시되며 픽셀당 16진수/10진수 값이 표시됩니다.
시뮬레이션 뷰어 하단에는 또 다른 패널인 가 있습니다. 소스에서 둘 이상의 이미지를 사용하는 경우, 여기에서 이미지 시퀀스의 모든 이미지를 확인하고, 시퀀스의 이미지 순서를 변경하거나, 디스플레이 패널 및 돋보기(magnifier)에 표시할 이미지를 선택할 수 있습니다.
는 드래그 앤 드롭을 통해 메인 창에서 쉽게 분리할 수 있는 의 두 번째 창입니다. 는 메인 의 디스플레이 패널에 표시되는 것과 항상 동일한 이미지를 보여줍니다. 포인터는 항상 창의 중앙에 위치하며 디스플레이 패널에서 가리키는 픽셀에 정확히 위치합니다. 창의 큰 장점은 완전히 다른 확대 비율로 이미지의 선택 영역을 표시할 수 있다는 점입니다:
의 확대 비율을 변경하려면:
-
→ 창을 활성화합니다.
-
확대하려면 CTRL+MouseWheelUp을 사용하고 축소하려면 CTRL+MouseWheelDown을 사용합니다.
매우 높은 확대율을 선택하면 방향을 더 쉽게 파악할 수 있도록 픽셀 격자가 표시됩니다.
소스에 Test Images 또는 테스트 이미지 시퀀스를 로드하려면,
-
디자인에서 소스를 더블클릭하여 를 엽니다.
-
의 메인 메뉴에서 → 을 선택하거나 툴바에서 해당 아이콘을 클릭합니다. 나타나는 대화 상자에서 시뮬레이션 입력 이미지 파일을 선택하고 을 클릭합니다.
![]() |
참고 |
|---|---|
|
유용한 Test Images 중 일부는 다음 위치의 VisualApplets 설치 폴더에서 찾을 수 있습니다. |
![]() |
팁 |
|---|---|
|
또는 Windows Explorer에서 뷰어로 이미지 파일을 직접 드래그 앤 드롭하거나, Windows Explorer에서 다이어그램의 소스로 드래그 앤 드롭할 수도 있습니다. |
이제 에 입력 이미지가 표시됩니다.
를 닫은 후 해당 소스의 미리 보기 프레임에서 이미지의 썸네일을 확인할 수 있습니다.
소스를 링크에 연결하는 즉시, 소스는 링크의 파라미터 설정(최대 이미지 크기, Bit Width, Color Format 등)을 이어받습니다. 링크의 최대 이미지 크기보다 큰 이미지를 로드하면 시뮬레이션에 사용될 이미지 영역을 감싸는 녹색 사각형이 이미지에 표시됩니다.
![]() |
이미지 변환 |
|---|---|
|
단일 채널 회색조 링크에 컬러 사진을 로드할 수는 없으며 그 반대의 경우도 마찬가지입니다. 테스트 이미지가 소스가 연결된 링크의 속성과 일치하지 않는 경우, 이미지를 변환해야 합니다. 테스트 이미지를 변환하는 데 필요한 기능을 제공하는 이미지 처리 프로그램을 사용하십시오. VisualApplets에서 지원하는 이미지 포맷을 사용하십시오. 지원되는 이미지 포맷에 대한 자세한 내용은 'Supported Image Formats'를 참조하십시오. |
소스에 새 이미지를 로드하는 즉시, 해당 이미지는 의 디스플레이 패널에 나타나고 소스의 이미지 시퀀스에 추가됩니다. 하단에 있는 에서 이미지 시퀀스의 모든 이미지를 확인할 수 있습니다.
디스플레이 채널에 표시되는 선택된 이미지 페이지만 컴퓨터의 RAM에 저장됩니다. 시퀀스의 다른 이미지는 필요할 때 RAM으로 로드됩니다. 따라서 소스에 긴 이미지 시퀀스를 로드해도 RAM 사용량에는 거의 영향을 미치지 않습니다.
이미지 시퀀스를 로드한 후 로드 후에 이미지 순서를 변경할 수 있습니다. 에서 드래그 앤 드롭을 사용하여 시퀀스 내에서 원하는 위치로 이미지를 배치할 수 있습니다.
시퀀스에서 하나 이상의 이미지를 쉽게 삭제할 수 있습니다.
-
CTRL을 누른 상태에서 삭제할 이미지를 선택합니다.
-
DEL을 누르거나 메뉴에서 → 를 선택합니다.
에서 는 다음 시뮬레이션 단계에서 시뮬레이션되는 이미지를 나타냅니다. 버튼을 클릭하여 Simulation 대화 상자에서 를 시퀀스의 첫 번째 이미지로 재설정할 수 있습니다. 시뮬레이션 단계 및 재설정에 대한 자세한 내용은 'Setting the Number of Processing Cycles and Starting the Simulation'을 참조하십시오. 시뮬레이션 순서는 현재 디스플레이 패널에 표시되는 이미지의 영향을 받지 않습니다.
매핑을 통해 이미지 속성을 변경하는 경우('Image File Mapping' 참조), 썸네일은 자동으로 새로 고쳐지지 않습니다. 기본적으로 는 원본 이미지의 썸네일을 표시합니다.
썸네일 표시 방식을 조정하는 방법에는 두 가지가 있습니다. 메뉴에서 다음 중 하나를 선택하십시오.
-
→ 를 선택하여 시뮬레이션에서 현재 매핑 설정이 적용된 후의 이미지 미리보기를 확인하거나,
-
→ 를 선택하여 이미지의 현재 외형을 반영하는 썸네일이 표시되도록 할 수 있습니다.
이제 파라미터를 통해 이미지 입력을 최적화할 수 있습니다. 모든 파라미터는 에 표시됩니다.
디스플레이 패널의 각 픽셀에는 실제로 두 개의 십자형 커서가 표시됩니다. 두 개의 십자형 커서가 보이지 않으면 디스플레이 패널의 이미지를 확대하십시오.
흰색/검은색 십자형 커서는 마우스 커서의 위치를 나타냅니다.
색상이 있는 커서는 마우스 커서가 가리키는 픽셀의 중앙에 위치합니다. 이 십자형 커서는 에서도 정확히 동일한 픽셀에 표시됩니다.
설정 패널 탭인 에 해당 픽셀 값이 표시됩니다.
픽셀 값을 부호 없는 십진수, 부호 있는 십진수 또는 16진수 형식 중 어떤 것으로 표시할지 선택할 수 있습니다.
는 화면에 표시되는 값(들)을 보여줍니다. 16비트 또는 48비트 이미지가 소스에 로드된 경우 화면에 색상 채널당 8비트만 표시될 수 있으므로 이 값(들)은 실제 색상 값(또는 회조 값)과 다를 수 있습니다.
의 탭에는 왼쪽의 현재 이미지(파일에서 로드된 상태) 이미지 크기와 오른쪽 링크의 이미지 크기가 포함된 표가 있습니다.
열에 대한 설명은 'Pixel Spitting and Merging'에서 확인할 수 있습니다.
이미지 파일의 크기가 링크의 크기보다 작은 경우, 이미지는 1:1 비율로 링크에 전송됩니다.
이미지 파일의 크기가 링크의 크기를 초과하는 경우, 그림의 일부만 시뮬레이션에 사용됩니다. 디스플레이 패널의 녹색 사각형에서 시뮬레이션에 사용될 그림 부분을 확인할 수 있습니다. 또한 해당 값이 노란색으로 강조 표시됩니다.
![]() |
팁 |
|---|---|
|
디스플레이 화면에서 녹색 사각형이 보이지 않으면 보기 옵션을 → 로 설정하십시오. |
의 탭에서는 테스트 이미지(파일)의 Bit Width 및 소스가 연결된 링크의 Bit Width에 대한 정보도 확인할 수 있습니다.
열에 대한 설명은 'Pixel Spitting and Merging'에서 확인할 수 있습니다.
링크의 Bit Width보다 큰 Bit Width를 가진 이미지를 로드하려는 경우, 시뮬레이션에 사용할 이미지 비트를 선택할 수 있습니다. 슬라이더를 사용하여 선택을 수행할 수 있습니다:
선택 슬라이더의 Bit Width는 링크의 Bit Width와 같습니다. 슬라이더를 사용하여 오프셋의 새 위치를 정의할 수 있습니다. 오프셋은 이미지의 Bit Width 상에서 비트 선택이 시작되는 지점입니다. 이러한 설정에 따라 는 변경된 이미지를 즉시 계산하여 디스플레이 패널에 표시합니다. 위의 스크린샷에서는 8비트 이미지의 8비트 중 상위 4비트가 선택되었습니다. 따라서 시뮬레이션에 사용되는 테스트 이미지는 256개가 아닌 16개의 그레이스케일 값만 갖게 됩니다.
![]() |
에서 변경된 테스트 이미지 시각화 |
|---|---|
|
PC 모니터의 표시는 픽셀당 8비트 정보를 기반으로 하므로, 16개의 그레이스케일 값만 가진 이미지는 제대로 표시될 수 없습니다. 따라서 화면 시각화를 위해 테스트 이미지의 16개 그레이스케일 값은 8비트 모니터 디스플레이의 256개 그레이스케일 값에 매핑됩니다. 이 매핑은 표시되는 회색조의 수(16개)를 변경하지는 않지만 그 사이의 대비를 향상시킵니다(0 = 검은색, 15 = 흰색). |
반대로 로드된 링크(즉, 소스 모듈이 연결된 링크)보다 Bit Width가 작은 이미지를 로드하는 경우, 탭의 동일한 슬라이더를 사용하여 링크의 Bit Width 상에서 이미지 비트의 오프셋을 정의할 수 있습니다. 링크의 남은 비트는 NULL로 설정됩니다.
아래 그림은 8비트 그레이스케일 이미지가 12비트의 Bit Width를 가진 링크에 로드된 예를 보여줍니다:
디스플레이 정렬을 통해 에서 변경된 테스트 이미지를 시각화하기 위한 몇 가지 설정을 정의할 수 있습니다:
링크의 Bit Width가 8비트보다 큰 경우, 링크 Bit Width 중 디스플레이 패널에 표시할 8비트를 정의해야 합니다. PC 모니터의 표시는 컬러 채널당 8비트로 제한되므로 더 큰 Bit Width는 표시할 수 없습니다.
의 탭에서 링크의 비트 중 디스플레이 패널에 표시할 8비트를 정의할 수 있습니다. 슬라이더를 사용하여 표시 가능한 8비트의 오프셋을 선택하십시오. 이 디스플레이 정렬 설정은 시뮬레이션에 영향을 미치지 않습니다.
아래 예에서 링크의 Bit Width는 12비트입니다. 슬라이더를 사용하여 12비트 중 표시할 비트를 결정할 수 있습니다.
The BMP 파일 형식은 픽셀의 컬러 채널당 최대 8비트를 허용합니다. TIFF 형식은 컬러 채널당 최대 16비트를 허용합니다. 더 큰 Bit Width는 표준 이미지 파일 형식으로 간단히 저장할 수 없습니다.
VisualApplets은 이러한 제한을 우회하기 위해 픽셀 분할 기능을 제공합니다.
픽셀 Bit Width가 큰 이미지를 표준 이미지 파일 형식으로 저장하기 위해 각 픽셀은 여러 개의 이미지 파일 픽셀로 분할됩니다. 따라서 BMP 또는
TIFF 파일 형식에서 컬러 채널당 최대 64비트(예: 8 x 8비트 픽셀)까지 저장할 수 있습니다. 이러한 이미지는 일반 이미지 파일 뷰어이나 이미지 처리 프로그램에서 볼 수 있습니다. 물론 VisualApplets에서 생성한 픽셀 분할 이미지는 수평으로 확장되어 표시됩니다. 따라서 VisualApplets에서 픽셀 분할은 Bit Width(색심도)가 큰 이미지를 위한 단순한 저장 옵션입니다.
다음 형식으로 저장된 Bit Width가 큰 이미지를 로드하려면
BMP 또는 TIFF 시뮬레이션 소스로 파일
을 불러오려면, 하나의 원래 픽셀에 대한 색상 정보를 공유하는 인접 픽셀들을 다시 하나의 픽셀로 병합해야 합니다. 따라서 시뮬레이션 소스 뷰어는 올바른 맵핑을 위해 픽셀 분할 이미지를 병합할 수 있습니다. 분할 작업은 다음 항목에서 수행할 수 있습니다.
(참조: 'Evaluating the Simulation Results'). 여기에서 픽셀 병합 설정을 정의할 수 있습니다. 탭 :
다음 예시에서는 2048x1024 BMP 크기에 8 bit의 Bit Width(색 심도)를 가진
파일이 소스에 로드되었습니다. 이는 16 bit
1024x1024 이미지로 해석되어야 합니다.
필드에 2를 입력하면, 소스 이미지의 Bit Width는 컬러 채널당 8 bit에서 16 bit로 변경되는 반면, 소스 이미지의 행 길이는 절반으로 줄어들어 2048 픽셀에서 1024 픽셀로 변경됩니다.
병합 전:
병합 후:
테스트 이미지 또는 테스트 이미지 시퀀스를 소스에 로드하고 이미지에 대한 모든 설정을 정의한 후 시뮬레이션을 시작할 수 있습니다.
![]() |
Use Simulation Probes |
|---|---|
|
이미지 처리 결과를 확인하려는 모든 위치에 시뮬레이션 프로브가 삽입(및 연결)되어 있는지 확인하십시오(' Inserting Sources and Probes into your Design' 참조). |
-
메인 메뉴에서 다음을 선택합니다. → , 또는 툴바 아이콘을 클릭합니다.
. 이제 VisualApplets가 자동으로 Design Rules Check 1을 실행합니다.
창이 열립니다:
상단 창에는 현재 디자인에서 활성화된 모든 시뮬레이션 소스 및 시뮬레이션 프로브가 나열됩니다. 이 목록은 정보 제공용으로만 사용됩니다.
창의 하단 창에서는 디자인 규칙 검사 1(Design Rules Check 1)의 결과를 확인할 수 있습니다.
드롭다운 목록 상자를 통해 목록의 표시 방식을 변경할 수 있습니다.
-
및 에는 시뮬레이션용으로 설정한 소스와 프로브만 표시됩니다.
-
All Sources 및 All Probes에는 디자인 내의 모든 데이터 소스 및 데이터 목적지가 표시됩니다.
-
![]() |
오류 및 주의 사항의 영향 |
|---|---|
|
디자인 규칙 검사 1(Design Rules Check 1) 중에 오류가 감지되지 않은 경우에만 시뮬레이션을 시작할 수 있습니다. 디자인 규칙 검사 1에서 생성된 경고는 시뮬레이션 시작을 막지 않습니다. |
![]() |
참고 |
|---|---|
|
단일 오퍼레이터는 시뮬레이션용으로 선택할 수 없습니다. 시뮬레이션은 항상 디자인의 모든 오퍼레이터를 거쳐 실행됩니다. |
기본 시뮬레이션 창의 목록에 노란색 경고 삼각형이 표시된 시뮬레이션 소스나 프로브가 있는 경우, 이 소스/프로브는 디자인의 링크에 연결되어 있지 않으며 시뮬레이션 중에 무시됩니다.
![]() |
참고 |
|---|---|
|
카메라 오퍼레이터는 시뮬레이션 중에 데이터를 출력하지 않습니다. 시뮬레이션용 데이터를 제공하려면 출력 링크에 시뮬레이션 소스를 연결해야 합니다. |
필드에서 프로그램이 수행할 처리 주기(processing cycle) 수를 지정할 수 있습니다.
메뉴를 통해서도 시뮬레이션 및 처리 주기를 구성할 수 있습니다: → → :
선택 해제됨: 시뮬레이션 소스 및 CreateBlankImage 또는 CoefficientBuffer 같은 오퍼레이터를 포함하여 디자인의 각 소스는 주기당 하나의 데이터 세트를 출력합니다. 더 이상 처리하거나 전송할 데이터가 없으면 주기가 종료됩니다. 단순화된 데이터 관리를 통해 오퍼레이터는 하드웨어의 해당 엔터티 동작에서 벗어날 수 있습니다. 즉, 오퍼레이터는 입력 포트 내에 수신 데이터를 저장하는 대신 비현실적으로 큰 내부 버퍼를 구현할 수 있습니다.
선택됨: 디자인 전체가 소스에서 싱크(sink)까지 주기당 한 번 시뮬레이션됩니다. 종속성의 정밀한 모델링과 정확한 데이터 관리에 중점을 둡니다. 소스는 주기당 하나 이상의 데이터 세트를 제공할 수 있습니다. 이전에 생성된 데이터를 계속 처리해야 하는 경우 시뮬레이션으로 인해 소스의 데이터 출력이 차단될 수 있습니다. 따라서 오퍼레이터는 데이터 처리에 수집이 필요할 때까지 수신 데이터를 입력 포트 내에 유지합니다. 유효한 데이터가 수신 포트에 저장되어 있는 동안에는 업스트림 오퍼레이터가 데이터를 생성하지 못합니다. 이로 인해 정체가 발생하며, 이는 하드웨어의 억제(inhibit) 개념에 해당하고 교착 상태(deadlock)를 감지할 수 있게 해줍니다.
: 1D 데이터를 여러 라인으로 집계하여 하나의 2D 프레임으로 만들고 다른 2D 데이터처럼 시뮬레이션할 수 있습니다. 이는 빠르고 견고하지만 시뮬레이션이 정확히 하나의 시뮬레이션 주기로 제한됩니다. 을 선택하면 각 라인이 개별적으로 처리되므로 예를 들어 1D 루프를 처리하기 위한 다단계 시뮬레이션이 가능합니다. 이 기능은 데이터 흐름 동기화(data flow synchronization)에 의존하므로, 이 선택된 경우에만 이 옵션을 선택할 수 있습니다.
![]() |
|
|
1D 링크에 연결된 시뮬레이션 프로브의 경우, 수신된 라인 데이터가 시뮬레이션 프로브의 마지막 프레임에 추가됩니다. 각 처리 주기가 끝나면 해당 라인들이 최종 처리되고 새로운 프레임이 시작됩니다. 시뮬레이션 대화 상자가 열려 있는 동안에는 가 잠깁니다. |
뷰에서 원하는 양의 를 선택한 후, 버튼을 클릭하여 시뮬레이션을 실행할 수 있습니다. 모든 작업의 내부 상태가 유지되므로 시뮬레이션 대화 상자가 열려 있는 동안에는 동일한 창에서 연속 실행을 시작할 수 있습니다. 대화 상자가 닫히면 모든 오퍼레이터가 초기화 상태로 재설정됩니다.
예: 지정된 AppendImage 오퍼레이터는 연결을 위해 세 개의 입력 이미지를 필요로 합니다. 연결된 소스는 처리 주기당 하나의 이미지를 제공합니다. 시뮬레이션이 두 주기 동안 실행되더라도, AppendImage가 처리를 시작하는 데 필요한 추가 이미지를 아직 갖추지 못했기 때문에 AppendImage의 출력 링크에 연결된 시뮬레이션 프로브에는 아직 데이터가 표시되지 않습니다.
시뮬레이션 대화상자가 열려 있는 동안 추가(세 번째) 시뮬레이션 사이클을 수행할 수 있으며, 이는 연결된 시뮬레이션 프로브에 데이터를 제공합니다.
그 사이에 대화상자가 닫혔다 다시 열린 경우, 추가 시뮬레이션 사이클은 디자인을 초기화한 후에 실행되므로 AppendImage에 필요한 세 개의 이미지 중 첫 번째 이미지를 제공하게 됩니다.
![]() |
소스 모듈 내 이미지 처리 순서 |
|---|---|
|
새로운 처리 사이클에서는 소스에 로드된 이미지 시퀀스의 다음 이미지가 항상 처리됩니다. 시퀀스의 모든 이미지가 처리되면 시퀀스의 첫 번째 이미지가 다시 처리됩니다. |
소스에 단일 이미지만 로드된 경우, 각 처리 사이클마다 이 이미지가 반복해서 처리됩니다. 예를 들어, 네 번의 처리 사이클을 지정하면 소스의 단일 이미지가 최대 네 번 처리됩니다.
디자인에 따라 소스에 입력되는 이미지 수는 SplitImage 또는 RemoveImage 등의 오퍼레이터를 사용할 때와 같이 출력되는 이미지 수와 다를 수 있습니다. 따라서 하나의 처리 사이클에 대해 디자인의 소스 모듈 수보다 많거나 적은 결과 이미지가 프로브에 생성될 수 있습니다. VisualApplets Basics and Examples의 Multiple DMA Channel Designs 예제도 참조하십시오.
시뮬레이션을 지우고 시작 상태로 재설정하려면 버튼을 사용합니다.
재설정하면 다음과 같은 효과가 나타납니다.
-
모든 시뮬레이션 소스의 이미지 시퀀스가 재설정됩니다. 즉, 새 시뮬레이션은 시퀀스의 첫 번째 이미지부터 다시 시작됩니다.
-
모든 프로브의 내용이 삭제됩니다.
-
모든 오퍼레이터가 시작 상태로 재설정됩니다(예: 이미지 counter, 입력 포트의 수집되지 않은 데이터 등).
이제 디자인에 정의된 데이터 처리 시뮬레이션을 시작할 준비가 되었습니다.
-
시뮬레이션을 시작하려면 를 클릭합니다.
현재 시뮬레이션 상태는 Simulation 뷰 하단의 진행률 표시줄에 표시됩니다. 경고 및 오류는 Log 패널에 표시되며, / 버튼을 클릭하여 열거나 닫을 수 있습니다. 경고나 오류가 발생하는 즉시 Log 패널이 자동으로 표시됩니다.
![]() |
팁 |
|---|---|
|
필요한 경우 시뮬레이션 중에 시뮬레이션 모듈의 뷰어 창을 열어둘 수 있습니다. 하지만 이 경우 시뮬레이션 속도가 느려집니다. |
시뮬레이션이 진행되는 동안 시뮬레이션 프로브 모듈에는 결과 이미지가 채워집니다. 미리 보기 이미지 프레임에는 시뮬레이션 결과의 썸네일이 표시됩니다. 시뮬레이션 프로브의 시뮬레이션 뷰어 창을 열면 결과가 전체 크기로 표시됩니다.
![]() |
자동 시뮬레이션 재설정 |
|---|---|
|
디자인을 변경하면 시뮬레이션이 자동으로 재설정됩니다. 재설정 시 모든 시뮬레이션 프로브도 지워집니다. |
시뮬레이션이 완료되면 프로브에서 시뮬레이션 결과를 확인할 수 있습니다.
![]() |
일부 이미지가 프로브에 표시되지 않음 |
|---|---|
|
시뮬레이션 프로브에 매우 큰 이미지가 포함되어 있는 경우, 메모리 제한으로 인해 VisualApplets 에서 해당 이미지를 올바르게 표시하지 못할 수 있습니다. 이 경우, 회색 이미지(즉, 모든 픽셀의 값이 205(0xCD)인 이미지)가 표시됩니다. 이러한 현상이 발생하면 시뮬레이션에 더 작은 이미지를 사용하십시오. |
설계에서 프로브를 더블 클릭하면 를 엽니다.
다음과 비슷해 보입니다. 와 비슷하게 보입니다('시뮬레이션 소스에 이미지 파일 불러오기' 참조): 설정 채널은 왼쪽에, 표시 채널은 오른쪽에 있으며, 는 창의 하단에 있습니다.
[ 에서는 시뮬레이션 결과를 초기 평가용으로 확인할 수 있습니다. 픽셀 정렬을 통해 표시 옵션을 변경할 수 있으며, 이미지를 파일로 저장할 수도 있습니다. 저장 시에는 픽셀 분할과 같은 여러 가지 옵션이 제공됩니다.
디스플레이 채널에 표시된 이미지를 확대하거나 축소하려면 도구 모음에 있는 해당 아이콘을 사용하거나, CTRL+마우스 휠 위로 돌리기 을 사용하여 확대하고 CTRL+마우스 휠 아래로 돌리기를 사용하여 축소할 수 있습니다. 을 사용하여 축소할 수 있습니다.
확대 배율을 매우 높게 설정하면, 방향을 더 잘 파악할 수 있도록 픽셀 격자가 표시되며, 해당 픽셀 값이 텍스트로 표시됩니다.
다음과 같이 와 마찬가지로, 디스플레이 패널의 각 픽셀에는 두 개의 십자형 커서가 표시됩니다. 두 개의 십자형 커서가 보이지 않는다면, 디스플레이 패널의 이미지를 확대해 보세요. 흰색/검은색 십자형 커서는 마우스 커서의 현재 위치를 나타내는 반면, 색이 칠해진 십자형 커서는 마우스 커서가 가리키는 픽셀의 중심에 위치합니다. 이 십자형 커서는 확대경에서도 정확히 동일한 픽셀에 표시됩니다.
설정 패널에는 해당 픽셀 값이 표시됩니다:
선택한 픽셀에 대한 색상 값의 해석을 조정하기 위해 다음과 같은 다양한 옵션이 있습니다:
-
이를 16진수 형태로 볼지, 아니면 부호 있는 또는 부호 없는 10진수 형태로 볼지 선택할 수 있습니다.
-
해석에 대한 소수 비트 수를 고정소수점 수로 설정할 수 있습니다.
-
또한, 값에 곱해질 배율을 정의할 수 있습니다. 이는 라디안에서 도로 변환하는 것과 같은 선형 변환을 수행하는 데 유용합니다.
화면에 표시되는 값을 나타냅니다. 프로브에 16비트 또는 48비트 이미지가 저장되어 있는 경우, 화면에서는 색상 채널당 8비트만 표시될 수 있으므로, 이 값은 실제 색상 값(또는 회색조 값)과 다를 수 있습니다.
[Display] 의 값과 이미지 창에 표시된 색상 간에 톤 매핑을 수행하는 컬러 맵을 선택할 수 있습니다. 이는 부호가 있는 이미지 데이터를 다룰 때나, 포함된 이미지의 특성이 그레이스케일 표현에서는 잘 보이지 않을 때 특히 유용합니다.
시뮬레이션 프로브가 커널을 전송하는 링크에 연결되어 있는 경우, ‘커널’ 패널의 ‘커널 행’ 및 ‘커널 열’ 스핀 박스에서 개별 커널 이미지를 선택할 수 있습니다.
이미지가 시뮬레이션되면 즉시 에 즉시 표시되며 에 추가됩니다.
다음에서 이미지의 순서를 변경할 수 없습니다. 에서 변경할 수 없습니다.
하지만 시퀀스에 포함된 이미지 중 하나 이상을 삭제할 수 있습니다:
-
CTRL을 누른 상태에서 삭제할 이미지를 선택합니다.
-
DEL을 누르거나 메뉴에서 → 를 선택합니다.
매핑을 통해 이미지 속성을 변경하는 경우(예를 들어, 16비트
이미지를 BMP 파일)의 경우, 썸네일이 자동으로 새로 고쳐지지 않습니다. 기본적으로,
해당 원본 시뮬레이션 결과의 썸네일을 표시합니다.
VisualApplets 이 기능은 행 길이가 모두 동일한 직사각형 이미지의 처리 및 표시에만 국한되지 않습니다. 행 길이가 서로 다른 이미지도 표시할 수 있습니다.
이러한 이미지의 이미지 크기는 VisualApplets에 의해 다음과 같이 계산됩니다.
![]() |
행 길이가 균일하지 않은 이미지의 이미지 크기 계산 |
|---|---|
|
이미지 크기 = 가장 긴 행의 픽셀 수 * 행 수 |
행 길이가 NULL인 행도 계산에 포함됩니다. 이미지의 정의되지 않은 영역은 디스플레이에서 파란색에서 시안색으로의 색상 그라데이션으로 표시됩니다.
빈 이미지는 Empty Image 기호로 표시되며 저장할 수 없습니다.
의 디스플레이 패널은 동일한 이미지를 표시하는 두 가지 방법을 제공합니다.
-
Link View를 활성화하면 이미지가 링크를 통해 프로브로 전달되었을 때의 모습 그대로 표시됩니다.
-
File View를 활성화하면 현재 설정으로 파일에 저장할 때의 모습으로 이미지가 표시됩니다.
모니터는 항상 컬러 채널당 8 bit를 사용하므로, 더 높거나 낮은 Bit Width를 가진 이미지는 별도의 처리 없이 표시할 수 없습니다.
시뮬레이션 결과의 Bit Width가 8 bit보다 높은 경우, 오프셋 슬라이더를 사용하여 디스플레이 패널에 표시할 8 bit를 선택할 수 있습니다.
이 예에서는 16비트 그레이 스케일의 상위 8비트가 디스플레이로 선택되었습니다.
이미지의 Bit Width가 8 bit보다 작으면, 테스트 이미지의 그레이 스케일 값이 8비트 모니터 디스플레이의 256개 그레이 스케일 값에 자동으로 매핑됩니다. 이 매핑은 표시되는 회색조의 수를 변경하지 않지만 그 사이의 대비를 향상시킵니다. 이 매핑이 없으면 인간의 눈으로 이미지를 전혀 볼 수 없을 수도 있습니다. 예를 들어 1비트 이미지의 경우: 매핑 없이 0과 1 값이 모니터 디스플레이에 사용되면 인간의 눈에는 둘 다 검은색으로 해석됩니다. 이 경우 VisualApplets의 자동 Bit Width 매핑은 0을 0(검은색)으로, 1을 255(흰색)로 해석합니다.
뷰는 라인의 개별 색상 값 또는 그레이 값을 보여줍니다. 은 메뉴를 통해 열 수 있습니다.
출력 영역은 두 가지가 있습니다.
-
: 전체 라인의 개별 색상 값 또는 그레이 값이 표시됩니다.
-
: 뷰에서 표시된 영역을 확대합니다. 현재 뷰에 표시되는 영역은 뷰에서 흰색 배경으로 강조 표시됩니다. 뷰 아래의 스크롤 바를 사용하여 뷰에 표시되는 영역을 이동할 수 있습니다.
스핀 박스 를 사용하여 이미지에서 특정 라인을 선택할 수 있으며, 해당 라인은 패널에 표시됩니다.
컬러 이미지의 경우, , , , 체크박스를 사용하여 개별 컬러 채널을 켜거나 끌 수 있습니다. 는 밝기를 나타냅니다. 또한, 스핀 박스를 사용하거나 시안색 마커를 통해 라인 내에서 특정 픽셀 위치를 선택할 수 있습니다. 시안색 마커를 사용하려면 마우스를 뷰로 이동하기만 하면 됩니다. 그러면 값이 , , , 에 표시됩니다.
뷰는 이미지에서 선택한 라인의 컬러 값 또는 회조 값의 분포를 나타냅니다. 은 메뉴를 통해 열 수 있습니다.
히스토그램 뷰는 항상 다이어그램의 전체 높이에 맞춰지도록 크기가 조절됩니다.
스핀 박스를 사용하여 이미지의 특정 라인을 선택할 수 있습니다. 뷰에서와 같이, 해당 라인은 패널에 표시됩니다.
컬러 이미지의 경우, , , , 체크박스를 사용하여 개별 컬러 채널을 켜거나 끌 수 있습니다. 는 밝기를 나타냅니다. 또한, 스핀 박스를 사용하거나 시안색 마커를 통해 특정 컬러 값을 선택할 수 있습니다. 시안색 마커를 사용하려면 출력 뷰에 마우스 커서를 놓으십시오.
예를 들어 16비트 이미지와 같이 색 심도가 더 큰 경우, 스핀 박스 가 스핀 박스 대신 표시되며 그 옆에 빈(bin) 범위가 표시됩니다: 
선택한 또는 번호에 대해 해당 범위의 값을 가진 픽셀 수가 에 표시됩니다. 또는 에 숫자를 직접 입력하거나 마우스로 다이어그램을 가리켜 숫자를 선택할 수 있습니다.
컬러 이미지의 경우, 출력은 기본 색상 값인 RGB와 밝기 값 Y로 분할됩니다.
뷰는 이미지의 컬러 값 또는 회조 값의 분포를 나타냅니다. 은 메뉴를 통해 열 수 있습니다.
히스토그램 뷰는 항상 다이어그램의 전체 높이에 맞춰지도록 크기가 조절됩니다.
컬러 이미지의 경우, , , , 체크박스를 사용하여 개별 컬러 채널을 켜거나 끌 수 있습니다. 는 밝기를 나타냅니다. 또한, 스핀 박스를 사용하거나 시안색 마커를 통해 특정 컬러 값을 선택할 수 있습니다. 시안색 마커를 사용하려면 출력 뷰에 마우스 커서를 놓으십시오.
예를 들어 16비트 이미지와 같이 색 심도가 더 큰 경우, 스핀 박스 가 스핀 박스 대신 표시되며 그 옆에 빈(bin) 범위가 표시됩니다: 
선택한 또는 번호에 대해 해당 범위의 값을 가진 픽셀 수가 에 표시됩니다. 또는 에 숫자를 직접 입력하거나 마우스로 다이어그램을 가리켜 숫자를 선택할 수 있습니다.
컬러 이미지의 경우, 출력은 기본 색상 값인 RGB와 밝기 값 Y로 분할됩니다.
시뮬레이션 결과는 TIFF/TIF, BMP, JPEG/JPG, PNG 이미지 파일 형식으로 저장할 수 있습니다. TIFF 형식은 컬러 채널당 8비트와 16비를 네이티브로 지원하며, BMP는 채널당 8비트만 지원합니다.
영상을 TIFF/TIF 또는 BMP 파일로 실제로 저장하기 전에 Save Options 대화상자에서 모든 저장 설정을 정의해야 합니다.
-
대화상자를 열려면 의 메인 메뉴에서 → 를 선택하십시오. 결과적으로 패널이 의 오른쪽에 열립니다.
Destination File Format에서 이미지를 저장할 형식을 지정할 수 있습니다.
1비트 시뮬레이션 결과를 8비트 파일 형식으로 저장하려면 Normalize gray values 상자를 선택하세요. 여기서 Normalizing은 0을 0(검은색)으로, 1을 255(흰색)로 매핑하는 것을 의미합니다.
이미지의 bit width(링크의 bit width)가 저장용으로 선택한 파일 형식의 bit width와 동일한 경우, 이미지를 1:1로 저장할 수 있습니다.
이미지의 bit width가 파일 형식의 bit width보다 작은 경우 슬라이더를 사용하여 픽셀 정렬 오프셋을 변경할 수 있습니다. 이를 통해 시뮬레이션 결과의 비트를 파일 형식의 (더 큰) 픽셀 내 특정 위치에 저장할 수 있습니다. 예를 들어, 12비트 링크의 비트를 16비트의
TIFF 이미지 중 가장 낮은 12비트 또는 가장 높은 12비트에 저장할 수 있습니다.
이미지의 bit width가 파일 형식의 bit width보다 큰 경우 슬라이더를 사용하여 이미지 픽셀 중 파일에 저장할 비트와 폐기할 비트를 선택할 수 있습니다.
(잘려 나간) 파일 저장될 이미지의 미리보기를 확인하려면: Simulation Probe Viewer의 메인 창에서 설정 패널 상단의 라디오 버튼을 File View로 설정하세요.
VisualApplets의 픽셀 분할 옵션을 사용하려는 경우, 한 픽셀의 색상 정보를 몇 개의 픽셀로 분할할지 정의할 수 있습니다('Pixel Spitting and Merging' 참고).
예를 들어 16비트 시뮬레이션 결과를 8비트 BMP 파일로 저장하려면 Split 1 Pixel into 를 2 pixels로 설정합니다. 이제 이미지의 16비트 픽셀이 두 개의 8비트 픽셀로 분할됩니다.
분할을 수행하면 분할 계수에 따라 행 길이가 2배, 3배 등으로 늘어납니다. 이 예시에서는 행 길이가 두 배로 늘어납니다. 일반적인 이미지 시각화/처리 프로그램은 이러한 분할된 이미지를 표시할 수 있습니다. 하지만 이 프로그램들은 bit width를 8비트로 가정하므로 이미지 표기가 가로로 확장됩니다.
![]() |
분할된 이미지 역변환 |
|---|---|
|
시뮬레이션 소스에서 분할된 이미지를 로드하고 픽셀 병합 옵션을 사용하여 원래 bit width로 다시 역변환할 수 있습니다('Pixel Spitting and Merging' 참고). |
![]() |
중요 |
|---|---|
|
메인 메뉴에서 → 를 선택하면 Save Options 대화상자에서 지정한 모든 설정이 적용됩니다. |
시뮬레이션 결과를 파일로 저장하려면 다음과 같이 진행하세요.
-
메인 메뉴에서 → 를 선택합니다.
-
저장 위치와 파일 이름을 지정합니다.
-
클릭 를 클릭하세요.
![]() |
이미지 시퀀스 저장 |
|---|---|
|
전체 이미지 시퀀스를 저장할 수도 있습니다. 이미지 시퀀스를 저장하려면 Simulation Viewer에서 저장하려는 모든 이미지를 선택합니다. CTRL 키를 누른 상태에서 이미지를 클릭하세요. 그런 다음 메인 메뉴에서 → 를 선택합니다. 저장된 이미지에는 자동으로 번호가 지정됩니다. |
Q: 컬러 이미지를 그레이스케일 이미지로 변환하여 시뮬레이션 소스로 로드하려고 했습니다. 그러나 VisualApplets에서 단일 채널 링크로의 이미지 로드를 거부합니다. 문제의 원인이 무엇인가요?
A: 해당 이미지는 여전히 색상 정보에 대해 3개의 채널(채도 0%)을 사용하고 있습니다. 이미지를 단일 채널 이미지로 변환하기만 하면 됩니다.
Q: 시뮬레이션 프로브에 시뮬레이션 후 결과가 전혀 포함되지 않습니다. 문제의 원인이 무엇인가요?
A: 시뮬레이션 사이클을 충분히 시뮬레이션하지 않았을 수 있습니다. 사이클 수를 늘리십시오. 또한 알고리즘이 출력 이미지를 생성하지 않을 수도 있습니다. 연산자 참조에서 각 연산자 제한 사항을 확인하세요. 그리고 신호 링크에 연결된 시뮬레이션 프로브에는 출력 데이터가 표시되지 않습니다.
Q: 시뮬레이션 프로브가 자동으로 지워집니다. 그 이유는 무엇인가요?
A: 디자인이 수정될 때마다 시뮬레이션 프로브가 지워질 수 있습니다. 모듈 이동이나 현재 포트에 영향을 주지 않는 연산자의 내부 매개변수 수정과 같은 사소한 디자인 변경 시에는 이 현상이 발생하지 않습니다. 디자인의 토폴로지를 변경하는 변경 사항이나 링크를 통해 연결된 연산자로 전파되는 매개변수 변경의 경우 프로브가 무효화됩니다.

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


![[주의]](../common/images/admon/caution.png)




![[팁]](../common/images/admon/tip.png)

























![[중요]](../common/images/admon/important.png)
이전

