Community
cancel
Showing results for 
Search instead for 
Did you mean: 
jigong
Beginner
29 Views

Multiple decoder w/o multiple threads

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
29 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-in...

-Tony
jigong
Beginner
29 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
Reply