hbVPRemap
视觉算子hbVPRemap在创建任务前,需要准备hbVPRemapParam得到hbVPMapWrap,用于执行remap任务。
注解
- gdc底层仅支持双线性插值,不需要配置borderType、padValue参数;
- 由于gdc实现原理与dsp不同,同一map传入gdc和dsp输出的图像精度会不同;
- gdc对于map有如下要求:
- map坐标必须是正数;
- 尽量保持同一行里面的采样点是平滑过渡的,如果某两点之间过渡急剧变化,样条线的精度将不足以处理它;
- 不能4个采样点组成三角形;
- 如果采样精度不足,可能导致锯齿,扭曲等情况,此时推荐使用亚像素坐标;
- gdc支持10bit、12bit图像处理,需注意10bit、12bit仅为y通道的像素宽度,uv通道仍为8bit。同时10bit、12bit的y数据需要以MSB的方式进行16bit存储,即一个像素占用两个字节空间。
-
成员
注解
注意,map中数据排布(即phyAddr物理地址下的内存数据)为 x_0, y_0, x_1, y_1, ... ,内存长度应为 2 * mapWidth * mapHeight * sizeof(dataType),详细使用情况请参考示例。
- 当任务部署在GDC上时,srcWidth和mapWidth范围[96,3840],srcHeight和mapHeight范围[96,2160],且满足:mapWidth<=srcWidth,mapHeight<=srcHeight。 由于GDC对数据有对齐限制,mapWidth需要进行16对齐,这意味着当srcWidth不满足16对齐时,mapWidth将小于srcWidth。输入输出的stride按照width方向16对齐,处理8bit图像时,输入输出的stride范围[96,3840], 处理10bit和12bit图像时,输入输出的stride范围[192,7680],申请内存请以height和stride大小为准。
- 当任务部署在DSP上时,srcWidth和mapWidth范围[32,4096],srcHeight和mapHeight范围[16, 2160]。
hbVPRemap 算子的参数描述句柄,句柄包含了不同Backend上运行所必要的描述信息,可重复使用。
创建Remap的mapWrap参数。
- 参数
- [out]
mapWrap创建出的参数,在接口中被使用,该参数必须指向nullptr。 - [in]
paramremap参数,用来创建统一的mapWrap参数。 - [in]
backend选择后端硬件,不同的硬件后端需要为map准备不同的硬件资源
- [out]
- 返回值
- 返回
0则表示API成功执行,否则执行失败。
- 返回
注解
- hbVPCreateMapWrap用于创建remap的map资源,由于不同backend所需要准备的硬件资源不同,因此此处需要指定backend用以确定该map适用于哪个资源。
- 接口支持硬件资源为GDC,DSP。指定DSP部署资源时,backend需要根据开发板硬件配置情况设置。例如,在单核DSP开发板上,backend可以为:HB_UCP_DSP_CORE_ANY、HB_UCP_DSP_CORE_0。
- 支持同时指定dsp和gdc两种backend,分别创建两种硬件map资源,如:backend=HB_UCP_GDC_CORE_0|HB_UCP_DSP_CORE_ANY(指定创建GDC和DSP两种backend的硬件资源,且参数需要同时满足GDC与DSP尺寸约束, HB_UCP_CORE_ANY不能与其它backend进行或运算)。
释放Remap的mapWrap参数。
- 参数
- [in]
mapWrap需要释放的mapWrap参数。
- [in]
- 返回值
- 返回
0则表示API成功执行,否则执行失败。
- 返回
调用Remap API。
- 参数
- [out]
taskHandle任务句柄,负责算子与UCP架构的交互。 - [out]
dstImg输出图像,type和format与输入图像一致,大小和map的大小一致。 - [in]
srcImg输入图像,type支持U8C1,format dsp硬件支持Y和nv12,gdc支持nv12,nv12_y10c8_msb和nv12_y12c8_msb。使用gdc处理10bit、12bit图像时,需要将图像的format设置为HB_VP_IMAGE_FORMAT_NV12_Y10C8_MSB或HB_VP_IMAGE_FORMAT_NV12_Y12C8_MSB,type设置为HB_VP_IMAGE_TYPE_U16C1进行处理。 - [in]
mapWrapmap参数。
- [out]
- 返回值
- 返回
0则表示API成功执行,否则执行失败。
- 返回
