To my understanding, after the final ratification, the header files will be released, and what I should do from then is to imlement all the APIs described in the specification, including vxCreateContext(), vxQueryTarget(), vxGetKernelByName(…), vxProcessGraph, … etc.
Am I right?
And if so, your sample implementation which will be released soon after the header distribution will contain all the APIs in the OpenVX specification? Or will it be just a subset and the rest should be implemented to complete the API?
Will your sample implementation include the kernel implementations(such as Sobel3x3, absDiff,…)?
To help us to manage the project schedule, could you let us know the approximate time of the sample implementation distribution? (3Q? 4Q? or 1Q next year?)
The sample implementation will be released some time after the Final Ratification of the specification. The sample will hopefully be a complete and fully working implementation, but it is not optimized for every platform (or any platform). It should come with a working version of each kernel, as I think we have most if not all of them working already. Final Ratification should be 4Q and I think we’re on track to release the sample around that time, but no strong promises, since we are a board of companies, not a single company. The sample may also come with some helper libraries, extra (non-standardized) kernels and some unofficial extensions that are not part of the specification but are useful.
So, the helper libraries you’ve mentioned are what enable executing the application implemented using OpenVX?
I mean, the libraries are the functions for creating the objects of the OpenVX (e.g., graph, image, .etc)? More specifically, the helper libraries are the implementations of the OpenVX functions like vxCreateGraph, vxSetParameterByIndex, vxCreateNode, …
And if it is correct, should I implement all of the functionalities I’ve mentioned unless the helper libraries exists?
I’m quite confusing because I thought that the OpenVX functions (excluding the Kernels itself) will come along with the specification…
The Specification API (vxCreateContext, vxCreateGraph) are not helpers, they are part of the Specification API. API that initialize a vx_matrix to a specific affine rotation angle, for example would be a helper. The sample is just an example implementation. You may base your implementation on the sample. but it may not suite your platform, so you may have to reimplement the entire API. Each kernel is only going to be an example “C” version of the kernel, not optimized.
The sample contains:
1.) ALL specification APIs (vxCreateGraph. etc).
2.) ALL specification kernels (vxSobel3x3, etc).
3.) Helper API for doing basic things that just use API from #1 but do something useful like initializing rotation matrix.
4.) Extra kernels and debugging kernels which are not in the specification but may in the future.