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.

Multiple decoder w/o multiple threads

jigong
Beginner
356 Views
I have 12 decoders in our application. I compared between multiple decoder with multiple threads (each decoder owns itself thread) and multiple decoder with single thread. The test result is that the latter almost 3 times faster than the former. Could someone explain why?
Thank in advance.
Jiuxiang
0 Kudos
2 Replies
Anthony_P_Intel
Employee
356 Views
Hi Jiuxiang,

The Intel Media SDK contains a scheduler that is designed to manage the use of available low-level hardware components efficiently. When creating multiple decoders, we recommend using the MFXJoinSession() method so that the asynchronous work can be efficiently managed. This is described in Section 4.3 of the Intel_Media_Developers_Guide.pdf.

If you are using hardware acceleration, there are limited hardware resources and the Intel Media SDK provides this feature so that yoru application makes optimal use of the resources.

You may also want to look at using this tool to help tune your specific application even further when exectuing on Intel platforms that support hardware acceleration.

http://software.intel.com/en-us/articles/using-intel-graphics-performance-analyzer-gpa-to-analyze-intel-media-software-development-kit-enabled-applications/

-Tony
0 Kudos
jigong
Beginner
356 Views
Hi Tony,
I combined MFXJoinSession() with IDirect3D device mananger and suit sychonization. My problem solved. Intel GPA shows that my application performance became better, output frame rate is more stable.
I still have a tiny question. Do I have to use MFXDisjoinSession() before I destruct the decoders?
Thanks.
Jiuxiang
0 Kudos
Reply