目录
- 整体架构
- 子模块介绍
- 基础组件
- 虚拟化服务组件:
- 媒体组件
- 媒体组件架构
- 媒体软件组件
- NvMedia组件进程安全
整体架构
架构图:
图上描述了NVIDIA车载软件架构的整体架构,NVIDIA提供了:
- Orin硬件,和安全岛
- DRIVE Hypervisor
- Linux及其配套驱动
- NvStremer/NvMediaVukan等媒体组件
- CUDA、TersorRT等
- 安全服务、功耗管理、OTA等
英伟达提供的软件整体架构:
子模块介绍
基础组件
Hypervisor:Trusted Software server that separates the system into partitions。
- Guest OS partitions and the isolation between them.
- Partitions’ virtual views of the CPU and memory resources.
- Hardware interactions
- Run-lists
- Channel recovery
guest OS:Allocates peripherals that Guest OS needs to control.
Services:Services for DRIVE Update.
Bootloader:Firmware that runs during boot to load firmware components
Trusted OS:Trusted OS configuration in the PCT describes the configuration of the virtual Trusted OS device.
Orin SoC:System on a Chip hardware resources.
虚拟化服务组件:
Boot and Power Manager Processor (BPMP) Server: Facilitates communication between Guest Virtual Machines (VM) and BPMP firmware.
VM Server:host1X virtualizes NvHost.
Security Engine (SE) Server:Para-virtualizes and allows multiple Guest Virtual Machines access to the security engine cryptographic hardware accelerator.
Trusted Applications (TA):Trusted OS exposes a set of core services that use managed security assets in cryptographic operations without exposing them to non-secure guest software.
GPU:
Storage Server:Para-virtualizes storage access to enable sharing physical storage devices among multiple Guest Virtual Machines.
Debug Server:Provides support for kernel-level debugging of Guest Virtual Machines (VM).
媒体组件
NvMedia组件提供了如下功能:
- Robust image processing and sensor control blocks for use by applications.
- Hardware surface to handle all types of image formats such as RGB, YUV and RAW.
- Functional components for image capture, processing, acceleration, encoding, and interoperating with other libraries.
NvMedia组件可以把图像数据路由到其他组件,比如:OpenGL ES 和 NVIDIA CUDA。
媒体组件架构
架构图:
组件介绍:
Video Input (VI):接收摄像头数据通过CSI
Image Signal Processor(ISP):图像数据处理器
NVIDIA Encoder (NVENC):视频编码器
NVIDIA Decoder (NVDEC):视频解码器
Video Interlace Compositor (VIC):Converts video data for deinterlacing, composition, and format conversion.
Optical Flow Accelerator (OFA):加速帧之间的光流和立体视差计算。
媒体软件组件
NvMedia包含下面几个软件组件:
SIPL:用来处理视频流
2D:提供图像数据的操作的能力;例如裁剪、缩放、复制和转换格式。
IEP(Image Encode Processing):提供数据编码能力,将YCbCr图像转换为H.264/H.265
IJE(Image JPEG Encodin):将YUV编码为JPEG
IJD(Image JPEG Decoding ):将JPEG格式解码为YUV图像
NvMedia组件进程安全
NvMedia不支持进程安全,通过上层软件来保证进程安全。因此需要注意:
- NvMedia组件可以在所有的进程中例化和使用,但是不能相互调用API
- 同一组件的不同实例可以同时在不同进程中使用
- 编码器被设计成从一个进程拿数据流,从另一个进程拿用于编码的bitstream。