일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- udpsink
- libargus api
- LAYERS
- gcc7
- 티스토리챌린지
- bitbake
- mkfs.ext4
- l4t
- /dev/kmsg
- vpi
- orin nx
- linux
- nvidia
- camera
- bash
- meta-tegra
- 오블완
- boot process
- RDEPENDS
- ssd 포맷
- Jetson
- cpu frequency
- vpiimage
- nvarguscamerasrc
- 봉화 숲속캠핑장
- gstsample
- lineedit
- server error
- libargus
- yocto
- Today
- Total
DREAMER
[VPI] VPI란? Basic Concepts 본문
VPI란?
VPI는 실시간 이미지 처리 어플리케이션에 적합한 비동기 컴퓨팅 파이프라인을 구현하는데 사용됩니다.
파이프라인은 하나 이상의 비동기 컴퓨팅 스트림(1)으로 구성되며, 해당 스트림은 사용 가능한 컴퓨팅 백엔드(2) 버퍼(4)에서 알고리즘(3)을 실행하게 됩니다.
스트림들 간 동기화는 이벤트를 사용하여 이루어집니다.
스트림이란?
VPIStream은 주어진 백엔드 장치에서 순차적으로 알고리즘을 실행하는 비동기 큐입니다.
백엔드 간에 높은 수준의 병렬처리를 수행하기 위해, 프로세싱 파이프라인은 여러 processing 단계가 동시에 실행되도록 구성될 수 있으며, 각 단계는 VPI 스트림에서 각각 실행됩니다.
VPI 스트림은 VPI가 제공하는 동기화 기본 요소를 통해 데이터 구조를 교환하여 서로 공동으로 작업할 수 있습니다.
백엔드란?
백엔드는 실제로 알고리즘을 돌리는 컴퓨팅 하드웨어로 구성됩니다.
VPI는 백엔드 CPU, GPU (CUDA 사용), PVA (Programmable Vision Accelerator), VIC(Video and Image Compositor) and OFA(Optical Flow Accelerator)를 지원합니다.
알고리즘이란?
VPI는 스테레오 이미지와 Harris keypoint 검출 간의 시차 계산, 이미지 블러링과 같은 특정 목적의 컴퓨터 비전 알고리즘을 제원합니다.
일부 알고리즘은 프로세싱을 수행하기 위해 VPIPaylod라고 하는 임시 버퍼를 사용합니다.
2D 이미지
VPI는 지정된 너비, 높이 및 이미지 형식의 메모리 블록 하나로 2D 이미지를 나타냅니다.
1D 어레이
VPI 1D 어레이는 기본적으로 주어진 유형과 용량의 메모리 선형 블록입니다.
피라미드는 동일한 형식의 2D 이미지 모음입니다. 이미지 피라미드는 다음과 같이 정의됩니다:
미세한 수준부터 거친 수준까지
최고급 레벨의 너비와 높이
한 레벨에서 다음 레벨로의 확장
이미지 형식
사용자 지정 메모리 래핑
사용자 응용 프로그램에 VPI 알고리즘에 대한 입력 및/또는 출력 버퍼 역할을 해야 하는 기존 메모리 버퍼가 있는 경우, 이를 VPI 이미지 또는 VPIray로 감쌀 수 있습니다.
사용자가 할당한 랩핑된 메모리는 가능한 경우 피해야 하며, 특히 일련의 알고리즘 호출에 임시 버퍼를 사용하는 경우에는 더욱 그렇습니다.
동기화 기본 요소
VPI는 서로 다른 스트림 간의 작업을 조정하고 작업이 올바른 순서로 실행되도록 하는 몇 가지 방법을 제공합니다
주어진 스트림을 호출 스레드에 동기화하여 지금까지 스트림에 제출된 모든 작업이 완료될 때까지 호출 스레드를 기다리게 할 수 있습니다.
스트림 간에 보다 세분화된 조정을 위해 VPIevent를 사용하여 하나 이상의 스트림 또는 호출 스레드에서 특정 작업이 완료될 때까지 대기하여 장벽 동기화 메커니즘을 효과적으로 구현할 수 있습니다.
VPI 애플리케이션
VPI 애플리케이션은 크게 세 단계로 구성됩니다:
메모리가 할당되는 초기화에서는 스트림, 이미지, 어레이, 컨텍스트와 같은 VPI 개체가 생성되고 설정과 같은 기타 일회성 초기화 작업이 수행됩니다.
결과를 읽고 다른 단계로 전달하여 추가 처리 또는 시각화합니다.
- Cleanup
초기화 중에 할당된 모든 개체가 파괴됩니다.
'프로그래밍 > NVIDIA' 카테고리의 다른 글
[VPI] GstSample -> VPIImage 변환 (0) | 2024.10.08 |
---|---|
[Yocto] meta-tegra initrd로 플래시 (0) | 2024.04.25 |
[Jetson Nano] Boot Process (0) | 2024.02.21 |
[Orin NX] Compatible Carrier Board (0) | 2024.02.06 |
[L4T] Release Notes (0) | 2024.02.06 |