The performance

The performance

Hi,

I'm testing the simple_player on P4 and core 2 duo. I expect that IPP will have better performance on core 2 duo. But the result was not. Core 2 Duo cost the cpu usage between 50 to 70 % ( event more ).

Is there any thing wrong?

my hardware spec is :

Inter Core to Duo 6600 , 2GB RAM, ATI X1600 Graphic card

The video clip is 720x480 with 30FPS

my command is : simple_player -v dx VideoClipName

Need your help~

Regards,

Ken

17 posts / 0 new
Last post
For more complete information about compiler optimizations, see our Optimization Notice.

Hi Ken,

what compression algorithm was used in yourvideo clip (I want to know what decoder work in simple_player)?

what version of IPP did you use? Do you know that the latest release version is IPP 5.1 and IPP 5.2 beta is available for evaluation? Can you update IPP binaries and media sample sources from the latest version?

Regards,
Vladimir

Hi Vladimir,

Thanks for your reply.

The video clip isMpeg4. Yes, I'm using 5.2 beta.

Regards,

Ken

Hi Ken,

could you please to print somewhere in the beginning of your program (but after call of ippStaticInit) version of IPP, to see what optimized code was loaded by IPP dispatcher?

You can do this with simple piece of code like this:

 const IppLibraryVersion* ippvc = ippvcGetLibVersion();
 printf("Intel Integrated Performance Primitives
");
printf(" version: %s, [%d.%d.%d.%d] ",
ippvc->Version, ippvc->major, ippvc->minor, ippvc->build, ippvc->majorBuild);
printf(" name: %s ", ippvc->Name);
printf(" date: %s ", ippvc->BuildDate);

Regards,
Vladimir

Hi Vladimir,

Here is the information.

On P4

----------------------------------------

Intel Integrated Performance Primitives
version: 5.2 beta, [5.2.291.35]
name: ippvcw7-5.2.dll
date: Oct 10 2006

----------------------------------------

On Core2Duo

----------------------------------------

Intel Integrated Performance Primitives
version: 5.2 beta, [5.2.291.35]
name: ippvcv8-5.2.dll
date: Oct 10 2006

----------------------------------------

Regards,

Ken

Hi Ken,

on Core 2 Duo performance should be better for sure. So, I'm trying to find a reason. What is the video card on your P4 systems?

Our MPEG4 decoder (and encoder as well) is threaded, and so it should utilize both cores. If you play video in maximum speed the cpu usage should be higher on Core 2 Duo. But if you do usual playback, cpu usage of course should be lower.

Regards,
Vladimir

Hi Vladimir,

My Video card on P4 is ATI MOBILITY RADEON (IBM Notebook X32).

I used the same test program and mechanisms on both P4 and C2D.

Thanks again and hope to hear from you soon.

Regards,

Ken Chan

Hi Ken,

it is strange, but we can't reproduce such issue. Did you tried different video streams?

Note, MPEG4 decoder and encoder are threaded with using OpenMP API, so you run them at the maximum speed they should utilize processor more (they will use both cores) then non threaded version (like when you run them on single core system. But, if you run decoder like you mention, to keep desired frame rate, they should defintely use processor less.

Regards,
Vladimir

Hi Vladimir,

Thanks for your reply.

My video stream is standard with ISO 14496-2. Some decoders like DivX, XVid, FFMpged were working finewith it.I think IPP should be betterfor cpu usage. But the result isreally strange. :'(

For you to reproduce the issue. If that is possible, did any thing I can help?To provide the video stream?

Regards,

Ken Chan

Ken,

if you can provide problem stream it would be nice and will help us inreproducing that issue

Regards,
Vladimir

Dear Vladimir,

I uploaded the video stream as a file @ http://actiftp.hosting4less.com/Intel/, and the file name is "ForIntel.rar".

Please feel free to let me know ifanything needs me.

Thanks again and hope to hear from you soon.

Regards,

Ken Chan

Thank you, I'll pass it to our experts for analises

Regards,
Vladimir

Ken,

please try -n key. It force to play raw video with it FPS.

simple_player -v dx -n streamname

Nikolay

Hi Nikolay,

Thanks for your reply.

Yes, i tried to play the video plip with -n, but the CPU usage have no different to without -n( still cost 50 - 70 ).

Regrards,

Ken Chan

Hi Ken,

could you provide console output of your simple_player? Something like this

simple_player.exe -vdx -n ForIntel.raw
Video Render : GDI
-RenderFormat: YV12

Stream Type : MPEG4PV
Video Info :
-Video Type : MPEG4
-Resolution : 720x480
-Frame Rate : 0.00
Audio Info :
-Audio Type : UNDEF
-S.Frequency : 0
-Num.Channel : 0
-BitPerSample: 0

DecRate:504.26 fps(Dec 1.78ms/f + Conv 0.20ms/f = 1.98ms/f) RndrRate 31.78fps Au
dio Dec 0.00chnls
DecRate:497.60 fps(Dec 1.73ms/f + Conv 0.28ms/f = 2.01ms/f) RndrRate 28.54fps Au
dio Dec 0.00chnls
DecRate:503.80 fps(Dec 1.71ms/f + Conv 0.27ms/f = 1.98ms/f) RndrRate 28.75fps Au
dio Dec 0.00chnls
DecRate:496.00 fps(Dec 1.73ms/f + Conv 0.28ms/f = 2.02ms/f) RndrRate 28.95fps Au
dio Dec 0.00chnls
DecRate:496.17 fps(Dec 1.73ms/f + Conv 0.28ms/f = 2.02ms/f) RndrRate 28.99fps Au
dio Dec 0.00chnls

Nikolay

Hi Nikolay,

Here is the log. My command is "-vdx -n ForIntel.raw", I add the log for version, name, date last time request by Vladimir.

Intel Integrated Performance Primitives
version: 5.2 beta, [5.2.291.35]
name: ippvcv8-5.2.dll
date: Oct 10 2006
Video Render :GDI
-RenderFormat:YV12

Stream Type :MPEG4PV
Video Info :
-Video Type :MPEG4
-Resolution :720x480
-Frame Rate :0.00
Audio Info :
-Audio Type :UNDEF
-S.Frequency :0
-Num.Channel :0
-BitPerSample:0

DecRate:774.97 fps(Dec 1.18ms/f + Conv 0.11ms/f = 1.29ms/f) RndrRate 31.99fps Audio Dec 0.00chnls

DecRate:1034.18 fps(Dec 0.87ms/f + Conv 0.10ms/f = 0.97ms/f) RndrRate 32.00fps Audio Dec 0.00chnls

DecRate:1044.06 fps(Dec 0.86ms/f + Conv 0.10ms/f = 0.96ms/f) RndrRate 32.00fps Audio Dec 0.00chnls

DecRate:1045.93 fps(Dec 0.85ms/f + Conv 0.10ms/f = 0.96ms/f) RndrRate 32.00fps Audio Dec 0.00chnls

DecRate:1039.28 fps(Dec 0.86ms/f + Conv 0.11ms/f = 0.96ms/f) RndrRate 32.00fps Audio Dec 0.00chnls

Regards,

Ken

Hi Ken,

As you can see the decoding speed is very high (more then 1000 FPS).I think the problem with big CPU usage is in Openmp threading of MPEG-4 decoder (threads do notsleep on Core2Duo, I do not know why). On Pentium 4 I got the CPU usage~10% only but on Core2Duo ~70%.

You can disable threading of MPEG-4 decoder - remove /Qopenmp compiler key from Makefile and rebuild.

With single-threaded version of MPEG-4 decoder I have only ~1% of CPU usage on Core2Duo

Nikolay

Leave a Comment

Please sign in to add a comment. Not a member? Join today