Community
cancel
Showing results for 
Search instead for 
Did you mean: 
vinay_k_1
Beginner
84 Views

MFXVideoDECODE_DecodeFrameAsync API questions

Hi,

    I used samples code provided by intel to decode H264 stream on windows7 with 3rd generation of i5 core. I found that performance of Software decoding and Hardware decoding are almost similar . Hence in order to make Hardware platform decoder more faster i wanted to avoid the output frame copy to CPU and see performance.But this MFXVideoDECODE_DecodeFrameAsync api  does not provide any option nor any control to experiment something like this.

Is there anyway that i can do this experiment and also evaluate hardware performance? Or am i missing something ?

 

Regards
Vinay

0 Kudos
5 Replies
Anthony_P_Intel
Employee
84 Views

Hi,

You should see performance difference if you are decoding to NV12 format in video memory (D3D9 or D3D11).

The tutorial here http://software.intel.com/articles/intel-media-sdk-tutorial also has a  "Workload analysis and benchmarking" section that you may find useful.

vinay_k_1
Beginner
84 Views

Thanks Tony.
I looked at the workload analysis part , how should i check whether the same performance is obtained by my setup , as the stream used is not mentioned. I took Big buck bunny of 1980x1080 which has more than 16K frames and taking more than 3 secs as it was mentioned for simple_2_decode and also saw that decoder is showing MFX engine load around 3%  and GPU load around 20% in GPA Analyser. Hence i am not able to get same analysis as mentioned in that article.

Please let me know if i am missing something.

 

Regards
Vinay

Anthony_P_Intel
Employee
84 Views

Hi Vinay,

Actual content should not matter if “ENABLE_INPUT” and “ENABLE_OUTPUT” are disabled as mentioned.  Numbers in article are based on "~50s 1080p content"  (much less than 16K frames).

"Configuration: 3rd generation Intel® Core™ i5-3317U, 1.7 GHz., 4 GB RAM. 32-bit Microsoft Windows* 8. ~50s 1080 p content. Microsoft DirectX* 9 workloads. "

vinay_k_1
Beginner
84 Views

Thanks Tony.

        I still dont have luck of getting good FPS numbers from  Quick sync video even after disabling ENABLE_OUTPUT.
I found following numbers when I decoded H264  streams of different resolution on machine with

Processor : Intel –i5-3320M CPU at 2.6 GHz

H264 streams

     

Stream Res

No of Frames

Avg Time taken(secs)/frame

Frames/Sec

176x96

85

1.80E-02

55.54

1280x720 Sports

4961

3.15E-02

31.78

3840x2160 foreman

123

1.54E-01

6.49

3840x2160 Suzie

176

1.52E-01

6.57

1920x1080 big buck bunny

9514

1.02E-01

9.80

 

     

 

                We felt these numbers are not meeting real time decoding especially if you see 1080P and 4K streams are giving @6-9FPS. Is my observation correct or I need to do some tweaking in the sample code ? I am not convinced by these numbers and I am sure quick sync is capable of decoding at faster speed. Can you please help me to understand and correct me if I have done something wrong.

 

Regards
Vinay

 

vinay_k_1
Beginner
84 Views

Hi Tony,

      I found in windows system with sample code (simple_decode) trying to decode AVC , there is version which we can vary (it is 1.0 in the code) and when we vary this to 1.8 the performance drops by half . I am not sure why would version difference from 1.0 to 1.8 gives this kind of performance number and also 1.0 does not allow me to put VIDEO memory .

      I found in our case 1080P Avc decoding takes about 111FPS with d3d memory and about 50 FPS with system memory without file writes. Does this observation matches with your comment ""Configuration: 3rd generation Intel® Core™ i5-3317U, 1.7 GHz., 4 GB RAM. 32-bit Microsoft Windows* 8. ~50s 1080 p content. Microsoft DirectX* 9 workloads. " ? as i dont know this 50sec time is for how many frames.
          
 I am decoding in Intel –i5-3320M CPU at 2.6 GHz benchmarking with widows and ubuntu OS. I dont see this version problem in Ubuntu which i described above. Please comment.

 

Regards

Vinay

Reply