i am writing OpenCL VP8 video encoder (Aazmp/vp8oclenc · GitHub).
For motion search now it uses hierarchical search that has some problems:
1) neighboring vectors become independent (results in high bitrate)
2) sometimes misses on highly downsampled images (results in bad predictor)
Full search also not an option (vectors are very independent)
So the questions are:
Does AMD Media SDK has tools for motion search with VCE?
Can i get access to only vectors, not an encoded h.264 frame?
Are there any guides on Media SDK APIs on this topic?
(and offtopic one:) Maybe someone suggests another search algorithm which GPU can utilize effectievly?
Thanks for answers!
P.S Sorry for bad english.
Thanks for your interest in the AMD Media SDK. Currently the SDK supports the Microsoft Media Foundation API for video encoding. You can review H.264 Video Encoder (Windows) for more details.
Currently this API does not expose the motion vectors computed by the VCE. However you can always extract the motion vectors from the encoded bit stream.
You can also take a look at the OpenCL accelerated x264 encoder for ideas on leveraging the GPU for motion search.