OpenVX 图构建与执行全解析
1. 虚拟对象优化
在构建 OpenVX 图时,若中间对象无实际用途,将其设为虚拟对象是个好习惯。这样 OpenVX 的优化实现能更高效地执行图。虚拟对象并非实际的数据对象,而是图内部节点间的“链接”。例如,在优化背景减法图中,可将两个节点有效合并为一个操作,先在内部寄存器计算差值并进行阈值处理,再存储阈值处理结果。虽然 OpenVX 实现不强制要求这样做,但构建图并正确使用虚拟对象能实现此优化,这是传统“即时模式” API 无法做到的。
2. 图的验证与执行
图构建代码本身并不进行图像或视觉处理,只是创建了一个描述计算的抽象数据结构。在执行前,需通过 vxVerifyGraph 函数将其定制为适合目标硬件的形式。调用示例如下:
status = vxVerifyGraph(g);
if (status != VX_SUCCESS) { /* Something went wrong */ }
else { /* We’re ready to execute */ }
vxVerifyGraph 函数不仅验证图的构建是否正确,还会进行一系列检查。构建 OpenVX 图时需遵循两个重要规则:
- 单写入者规则 :一个数据对象在给定图中只能被写入一次。若违反此规则,如以下代码创建的非法图:
vx_node thresh = vxThresholdNode(g,
超级会员免费看
订阅专栏 解锁全文
999

被折叠的 条评论
为什么被折叠?



