NVIDIA DRIVE SDK学习(一)——整体架构

目录

  • 整体架构
    • 子模块介绍
      • 基础组件
      • 虚拟化服务组件:
    • 媒体组件
      • 媒体组件架构
      • 媒体软件组件
      • NvMedia组件进程安全

整体架构

架构图:
NVIDIA DRIVE SDK学习(一)——整体架构_第1张图片
图上描述了NVIDIA车载软件架构的整体架构,NVIDIA提供了:

  1. Orin硬件,和安全岛
  2. DRIVE Hypervisor
  3. Linux及其配套驱动
  4. NvStremer/NvMediaVukan等媒体组件
  5. CUDA、TersorRT等
  6. 安全服务、功耗管理、OTA等

英伟达提供的软件整体架构:
NVIDIA DRIVE SDK学习(一)——整体架构_第2张图片

子模块介绍

基础组件

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。

媒体组件架构

架构图:
NVIDIA DRIVE SDK学习(一)——整体架构_第3张图片
组件介绍:
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。

你可能感兴趣的:(学习,架构,自动驾驶)