简介

VP模块在以NN为中心的计算方案中,主要作用于模型的前后处理环节。在地平线统一架构中,多种硬件均已搭载了图像处理的算子,而VP模块将图像处理相关的硬件调用进行了封装, 通过设置backend来选择不同的硬件方案(若不指定backend,UCP会自动适配负载更低的处理单元),从而平衡开发板负载,充分对开发板算力进行挖掘, 规避了不同硬件调用区别带来的不便,您可更多地关注软件功能。其功能架构如下图所示:

VP1architecture

上述架构图中,应用通过VP模块提供的算子的任务构造函数,如hbVPResize、hbVPRotate等,生成对应算子的任务句柄。 UCP提供了包含任务调度、会话管理、引擎管理等模块的Service,在对应算子的任务句柄生成后,通过UCP任务调度接口将算子任务提交到任务队列,分配到不同的底层硬件,实现算子的功能逻辑。 最底层为不同处理单元中封装实现的算子功能,例如remap算子在DSP与GDC中都有实现,此时VP中的remap算子就可以在这两种硬件上灵活部署。

在阅读本章节前,请先明确如下基础概念,相关内容在下文可能会多次被提及:

  • 视觉算法,也称Vision Algorithm,是用于实现图像处理功能的函数。
  • VDSP,全称Vision Digital Signal Processing,指视觉数字信号处理。
  • VP,全称Vision Process,指UCP中的视觉处理功能模块。
  • Backends,指UCP框架中的可分配处理单元。
  • Kernel,指VP算子中的滤波核参数。
  • 图片尺寸,算子对输入输出图片尺寸有各自的约束。