Media (Intel® oneAPI Video Processing Library, Intel Media SDK)
Access community support with transcoding, decoding, and encoding in applications using media tools like Intel® oneAPI Video Processing Library and Intel® Media SDK
The Intel sign-in experience has changed to support enhanced security controls. If you sign in, click here for more information.

OpenCL VME vs HEVC GACC library for HEVC encoding



I am trying to understand the differences between what is exposed through the OpenCL VME extension on Intel hardware, and what is available through the HEVC GACC library that is available as part of the Intel Server Studio Media SDK. Is it right to assume that the HEVC GACC library is a wrapper around the OpenCL VME extensions and so one can do what the HEVC GACC library does by using the OpenCL VME extension, or does it use an orthogonal path to access the hardware altogether? Also, I notice that the OpenCL VME tutorial talks about using built-in kernels available as part of OpenCL 1.2. Can I use them also when using OpenCL 2.0 so that I can take advantage of SVM, or is that not an option with the VME? Also, which one is expected to be faster?

I am trying to understand which option would provide me faster and accurate motion estimates for HEVC encoding...

Appreciate any information that I can receive about this!


0 Kudos
1 Reply

Hi Pradeep, in fact you have 3 options

1. use Open CL block based VME to implement your own motion estimation. make sure up until now it is AVC style 16x16 blocks

2. use GAA library, where is frame based ME implemented and adjusted for 32x32 blocks, not yet 64x64. Make sure it is Beta and subject to change API in future

3. use full HEVC Gacc implementation which is based in GAA library

#2 use similar approach as #1 but not exactly #1

Regards, Alexey