Media (Intel® 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
Announcements
The Intel Media SDK project is no longer active. For continued support and access to new features, Intel Media SDK users are encouraged to read the transition guide on upgrading from Intel® Media SDK to Intel® Video Processing Library (VPL), and to move to VPL as soon as possible.
For more information, see the VPL website.

Intel Media SDK and openCL filter

shashwat_D_
Beginner
371 Views

Hi,

I've developed a pipeline as shown below:

HEVC Decoder -->  YUV1  -->  openCL Filter  -->  YUV2  -->  HEVC Encoder

Here openCL Filter is not a plugin for QSV, its a separate module. YUV1 and YUV2 frames reside in DX surface.

For openCL filter, if I don't memcpy the frame surface and pass the same surface pointer to the openCL Filter, the output YUV2 gets corrupted. Whereas if i memcpy the YUV1 surface to a unsigned char buffer then apply filter and again memcpy back the result to YUV2 surface the application works but performance is degraded drastically.

Can someone please clarify:

1. Why passing the pointer YUV1->data.y to openCL Filter doesn't work?

2. Is there any work around to remove memcpys?

P.S.: The application is developed in C.

Thnks

Shashwat

0 Kudos
2 Replies
Robert_I_Intel
Employee
371 Views

Shashwat,

Could you please take a look at this tutorial https://software.intel.com/en-us/articles/sharing-surfaces-between-opencl-and-directx-11-on-intel-processor-graphics and make sure that you apply all the recommendations there.

0 Kudos
shashwat_D_
Beginner
371 Views

Thanks robert for the link. 

0 Kudos
Reply