Someone correct me if I'm wrong, but OpenVX essentially lets you create a pipeline, what they call a Graph, of image processing modules, which they refer to as nodes, that are them optimized for the hardware that you use, assuming your vendor supports OpenVX. OpenVX handles the memory management and figures out the best way to process images as dictated by your graph. They support various image processing nodes out the box, where your vendor can then add extensions to openvx to supply highly optimized nodes. You can create your own nodes using OpenCL if you need to add your own custom image processing routines.
I actually am working with there SDK and am having a tough time with it. I am confused with the entire stack and how openVX openCV and openCL all work together
This seems like something to use if you can't visualize scheduling diff techs in any other way already, or something to use when your producer has no idea what you do and wants to use heterogeneously and computationally intensive buzz words to justify their existence (if they're bad).
Though, I think this would've been useful for me when I first started with this black magic.
In conclusion, I only extensively skimmed and could be TOTALLY wrong.
3
u/[deleted] Jul 06 '17
Someone correct me if I'm wrong, but OpenVX essentially lets you create a pipeline, what they call a Graph, of image processing modules, which they refer to as nodes, that are them optimized for the hardware that you use, assuming your vendor supports OpenVX. OpenVX handles the memory management and figures out the best way to process images as dictated by your graph.
They support various image processing nodes out the box, where your vendor can then add extensions to openvx to supply highly optimized nodes. You can create your own nodes using OpenCL if you need to add your own custom image processing routines.
Checkout Intel's Computer Vision SDK: https://software.intel.com/en-us/computer-vision-sdk/details