TIOVX 学习笔记其一:OpenVX

Reference:

  1. TIOVX User Guide
  2. The OpenVX Specification

1. OpenVX - Low-Power Vision Acceleration

OpenVX 是一个开放的计算机视觉应用程序跨平台加速标准。OpenVX 可以实现性能和功率优化的计算机视觉处理,特别是在嵌入式和实时的应用案例中,如人脸、身体和手势跟踪、智能视频监控、高级驾驶辅助系统(ADAS)、对象和场景重建、增强现实、视觉检测、机器人等。

OpenVX 可以认为是 OpenCV 的嵌入式版本,OpenVX 提供一些图像处理的标准 API,系统第三方 Vendor 可以用硬件来实现一些图像处理功能,效率更高;而 OpenCV 则偏向于用软件来实现一些定义的功能。

1.1 kernel

在 OpenVX 中,有一个关键词叫做 kernel,这里的 kernel 并不是指操作系统的 kernel,而是指 OpenVX 中的一种功能,比如对一个图片进行高通滤波的功能就是 OpenVX 的一个功能,这在 OpenVX 里面叫做一个 user kernel

既然 kernel 是一种提供给用户使用的功能,那么这个功能函数一般支持传参,通过参数的不同来改变 kernel 的运行结果(如传入的图片就算一个参数)。

在 OpenVX 中,把参数定义初始化好后的 kernel 叫做 node,因此,node 就是 kernel 的一个实例化-----即拥有指定参数的 kernel。

node 可以在任何用任何语言编码的硬件或处理器上。例如,在 GPU 上,node 可以在 OpenCL 中实现。

1.2 OpenVX Graphs

OpenVX 开发者表达的一个图像操作图,每一步操作都是一个 node:
在这里插入图片描述

1.3 示例:An OpenVX “Hello, World !!!” Program

// init
vx_context context = vxCreateContext();//创建openvx上下文
vx_graph graph = vxCreateGraph( context );//基于上下文创建图

vx_image input = vxCreateImage( context, 640, 480, VX_DF_IMAGE_U8 );//基于上下文创建image变量
vx_image output = vxCreateImage( context, 640, 480, VX_DF_IMAGE_U8 );
vx_image intermediate = vxCreateVirtualImage( graph, 640, 480, VX_DF_IMAGE_U8 );//在图中创建虚拟image变量
vx_node F1 = vxF1Node( graph, input, intermediate );
vx_node F2 = vxF2Node( graph, intermediate, output );

vxVerifyGraph( graph );//校验graph中的node是否正常
vxProcessGraph( graph );//运行graph,这里会将刚才链接进来的所有Node的func执行一次

在这里插入图片描述

\newline
\newline

点击跳转:
TIOVX 学习笔记其二:TIVOX.
TIOVX 学习笔记其三:concerto makefile.
TIOVX 学习笔记其四:Objects.

评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

泠山

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值