公司注销 网站备案苹果cms永久免费建站程序
本文主要针对研发人员在使用比特大陆bmnnsdk2编写应用程序时,视频图像解码和图像处理部分的一些开发原则和注意事项。
1. 编程接触的内存类型(Host Memory和Device Memory)
熟悉比特大陆BM168x AI芯片的同学,都了解BM168x芯片有两种工作模式,对应不同的硬件产品。分别是 soc模式(SE5/SM5/SE3)和pcie模式(SC5/SC5+/SC3)。
无论是soc模式还是pcie模式,内存都有Host Memory和Device Memory两种。
a) soc模式时,Host Memory是芯片上主控Cortex A53的内存,Device Memory是划分给TPU/VPU 的设备内存。
b) pcie模式时,Host Memory是主机的内存,Device Memory是PCIE板卡的设备内存。
在整个程序的pipeline中,应尽量避免数据在Host Memory和Device Memory之间反复拷贝。
2. 视频图像解码和图像处理的开发注意事项
视频和图像的解码,BM168x芯片都是有专门的硬件单元(VPU)来实现,分别通过扩展opencv和ffmpeg的接口来便于研发人员使用。参考文档(documents/Multimedia_Guide_zh.pdf)。
这里需要特别注意,使用bmnnsdk2中的opencv解码,解码后的cv::Mat图像数据是在 Device Memory中,使用文档中没提到的API(resize\cvtColor\clone等)做图像处理操作,都是在Host Memory操作。正确的做法是图像处理操