图形运算加速模块
BMCV提供了一套基于算丰AI芯片优化的机器视觉库,目前可以完成色彩空间变换,尺度变换,仿射变换,线性变换等操作。关于bmcv模块详细内容请阅读BMCV_User_Guide.pdf。
python接口的实现请参考Sophon_Inference_zh.pdf
bmcv api均是围绕bm_image来进行的。一个bm_image结构对应于一张图片。用户通过一系列bm_image_create的API来构建bm_image结构体,然后供各个bmcv的功能函数使用。
1. C语言编程接口
bm_image结构体:
bm_image 结构成员包括图片的宽高,,图片格式,图片数据格式,以及该结构的私有数据。
关于bm_image初始化,我们不建议用户直接填充bm_image结构使用,而是通过以下API来创建/销毁一个bm_image结构
图片格式 image_format枚举类型
数据存储格式枚举
关于bm_image初始化,我们不建议用户直接填充bm_image结构使用,而是通过以下API来创建/销毁一个bm_image结构
bm_image_create_batch
创建物理内存连续的多个bm image。
bm_image_destroy_batch
释放物理内存连续的多个bm image。要和bm_image_create_batch接口成对使用。
bm_image_alloc_contiguous_mem
为多个 image 分配连续的内存
bm_image_free_contiguous_mem
释放通过bm_image_alloc_contiguous_mem申请的内存
bmcv_image_vpp_convert
bm1684上有专门的视频后处理硬件,满足一定条件下可以一次实现csc + crop + resize功能,速度比TPU更快。
该API将输入图像格式转化为输出图像格式,并支持crop + resize功能, 支持从1张输入中crop多张输出并resize到输出图片大小。
bmcv_convert_to
实现图像像素线性变化,具体数据关系可用公式表示
结构体bmcv_convert_to_attr_s
结构体描述了三通道中的alpha和beta。实际要根据推理的输入数据是几通道来进行参数配置。
2. python语言编程接口
本章节只介绍了用例py_ffmpeg_bmcv_sail中用的的接口函数
更多接口定义请查阅Sophon_Inference_zh.pdf
init
tensor_to_bm_image
convert_to
vpp_resize
Last updated