OpenVX的对象:卷积结构

OpenVX的对象:卷积结构
定义图像卷积对象接口。
类型定义
枚举
功能
5.6.1. 类型定义 vx_convolution
卷积对象。用户定义的 MxM 元素卷积内核。
typedef struct _vx_convolution *vx_convolution;
5.6.2. 枚举 vx_convolution_attribute_e
卷积属性。
enum vx_convolution_attribute_e {
VX_CONVOLUTION_ROWS = VX_ATTRIBUTE_BASE(VX_ID_KHRONOS, VX_TYPE_CONVOLUTION) + 0x0,
VX_CONVOLUTION_COLUMNS = VX_ATTRIBUTE_BASE(VX_ID_KHRONOS, VX_TYPE_CONVOLUTION) + 0x1,
VX_CONVOLUTION_SCALE = VX_ATTRIBUTE_BASE(VX_ID_KHRONOS, VX_TYPE_CONVOLUTION) + 0x2,
VX_CONVOLUTION_SIZE = VX_ATTRIBUTE_BASE(VX_ID_KHRONOS, VX_TYPE_CONVOLUTION) + 0x3,
};
枚举器
VX_CONVOLUTION_ROWS- 卷积矩阵的行数。只读模式。使用vx_size参数。
VX_CONVOLUTION_COLUMNS- 卷积矩阵的列数。只读模式。使用vx_size参数。
VX_CONVOLUTION_SCALE- 卷积矩阵的比例。读写模式。使用vx_uint32参数。
说明
对于1.0,最多支持 。
VX_CONVOLUTION_SIZE- 卷积矩阵的总大小(以字节为单位)。只读模式。使用vx_size参数。
5.6.3. 函数 vxCopy卷积系数
允许应用程序从卷积对象复制系数。
vx_status vxCopyConvolutionCoefficients(
vx_convolution conv,
void* user_ptr,
vx_enum usage,
vx_enum user_mem_type);
参数
[in] conv - 对卷积对象的引用,该对象是副本的源或目的地。
[in] user_ptr - 如果在读取模式中请求复制,则存储所请求的系数数据的存储位置的地址,或者如果在写入模式中请求拷贝,则从何处获得要存储到卷积对象中的系数数据。在用户存储器中,卷积系数数据被构造为具有与VX_type_convolution相对应的类型的,元素的行主2D阵列,具有与VX_convolution_rows相对应的行数,以及与VX_convolution_columns相对应的列数。可访问内存必须足够大,以包含此2D数组:可访问内存的字节数>=sizeof(data_element)*行*列。
[in] 用法 - -这声明了使用vx_accessor_e枚举,对卷积对象进行复制的效果。仅支持VX_READ_ONLY和VX_WRITE_ONLY:
X_READ_ONLY将数据从卷积对象,复制到用户存储器。
VX_WRITE_ONLY数据从用户存储器,复制到卷积对象中。
[in] user_mem_type - 一个vx_memory_type_e枚举,用于指定user_addr引用的内存类型。
返回:vx_status_e枚举。
返回值
VX_SUCCESS- 没有错误,任何其他值都表示失败。
VX_ERROR_INVALID_REFERENCE- conv不是有效的vx_convolution引用。
VX_ERROR_INVALID_PARAMETERS- 其他参数不正确。
VX_ERROR_NO_MEMORY- 内部内存分配失败。
vxCreate卷积
创建对卷积矩阵对象的引用。
vx_convolution vxCreateConvolution(
vx_context context,
vx_size columns,
vx_size rows);
参数
[in] context - 对整体上下文的引用。
[in] columns - 卷积的列维数。必须为奇数且大于或等于3且小于VX_CONTEXT_CONVOLUTION_MAX_DIMENSION返回的值。
[in] rows - 卷积的行维数。必须为奇数且大于或等于3且小于VX_CONTEXT_CONVOLUTION_MAX_DIMENSION返回的值。
返回:卷积引用。应使用vxGetStatus检查,阻止成功创建的任何可能错误。
vxCreateVirtualConvolution
在没有直接用户访问Convolution的情况下,创建对卷积矩阵对象的不透明引用。
vx_convolution vxCreateVirtual (
vx_graph graph,
vx_size columns,
vx_size rows);
参数
[in] graph - 对父图的引用。
[in] columns - 卷积的列维数。必须为奇数且大于或等于3且小于VX_CONTEXT_CONVOLUTION_MAX_DIMENSION返回的值。
[in] rows - 卷积的行维数。必须为奇数且大于或等于3且小于VX_CONTEXT_CONVOLUTION_MAX_DIMENSION返回的值。
返回:卷积引用。应使用vxGetStatus检查,阻止成功创建的任何可能错误。
vxQuery卷积
查询卷积矩阵对象的属性。
vx_status vxQueryConvolution(
vx_convolution conv,
vx_enum attribute,
void* ptr,
vx_size size);
参数
[in] conv - 要设置的卷积矩阵对象。
[in] attribute - 要查询的属性。使用vx_convolution_attribute_e枚举。
[out] ptr - 存储结果值的位置。
[in] size - ptr 指向的容器的大小(以字节为单位)。
返回:vx_status_e枚举。
返回值
VX_SUCCESS- 没有错误,任何其他值都表示失败。
VX_ERROR_INVALID_REFERENCE- conv 不是有效的vx_convolution引用。
vxReleaseConvolution
释放对卷积矩阵的引用。在对象的总引用计数为零之前,不能对其进行垃圾收集。
vx_status vxReleaseConvolution(
vx_convolution* conv);
参数
[in] conv - 指向要释放的卷积矩阵的指针。
后备条件:从此函数返回后,引用归零。
返回:vx_status_e枚举。
返回值
VX_SUCCESS- 没有错误,任何其他值都表示失败。
VX_ERROR_INVALID_REFERENCE- conv 不是有效的vx_convolution引用。
vxSetConvolutionAttribute
设置卷积对象的属性。
vx_status vxSetConvolutionAttribute(
vx_convolution conv,
vx_enum attribute,
const void* ptr,
vx_size size);
参数
[in] conv - 要设置的坐标对象。
[in] attribute - 要修改的属性。使用vx_convolution_attribute_e枚举。
[in] ptr - 指向要设置属性的值的指针。
[in] size - ptr 指向的数据的大小(以字节为单位)。
返回:vx_status_e枚举。
返回值
VX_SUCCESS- 没有错误,任何其他值都表示失败。
VX_ERROR_INVALID_REFERENCE- conv 不是有效的vx_convolution引用。
VX_ERROR_NOT_SUPPORTED- 如果属性不可设置。
 
参考文献链接
posted @ 2024-07-10 04:30  吴建明wujianming  阅读(4)  评论(0编辑  收藏  举报