Problem about the "DV-decode" sample

Problem about the "DV-decode" sample

I download the "DV-decode" sample from Intel site,it use IPP functions to decode dv frame.I foundit decode a frame need about 10ms,it is too long,the time of the "ms dv decoder" in DirectShow only 7-8ms.But I also found the CPU usage ofit is very low(my computer is P4 3.0G,the CPU usage is about 3%-4%),it puzzled me,the time it use is longer than the "ms dv decoder",but the CPU usage is lower,why?How is the performanceof the sample?Is it faster than the "ms dv decoder"?

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


could you please specify what version of IPP do you use with this sample and what is your system specification (I mean OS and CPU).


How did you measure performance and CPU usage for Intel and MS decoders? Do you use PAL or NTSC movies?

I use the IPP V4.0 to compile the program,my computer is P4 3.0G + winxp,I measure the CPU usage use the "Task Manager".


thanks for the info. BTW, why did not you use the latest IPP version? You know, now we have IPP v4.1 available for downloading. Could you please download the latest version of sample and IPP libraries and test it?


I think the problem is that what is the perfomance comparison of DV decoder between Microsoft and Intel IPP dv sample .

I am also earnestly waiting for the answer. Here, I'd like to make our problem more explicit:

When testing the "DV Sample" code, we found the CPU utility shown byWindows Task Maneger is alway less than 4%(even less than 2% sometime). But it seems not right in logic because it at least took 7ms or so to finish the frame-decode procedure. I wonder how could this INTEL DV SAMPLE make it since the CPU utility is 8% or so when testing with MS DV decoder.
I havedone a little analysis of the source code. There are 2 problems I can not makethem clear:

1. It seems using WAVEOUTmessage as timer. Is this the key point?
2. Is the Data shown by Windows Task Manager not always correct?

How did you get perf for "ms dv decoder"? Is it perf decoding only or all fiters chain?

I create below filter graph to bench the perf of "ms dv decoder":

avi file->avi splitter->ms dv decoder->null dump

I measured Intel DV sample from IPP4.1 on NTSC movie and got next:
decoding itself ~3.7ms.
laying out data to video memory ~4.1ms, it uses direct writing to DirectX overlay video memory and runs inside DecodeFrame function. SSE optimization of this part can give 2 times sped up. Flipping out surface in this case cost nothing. Sodecoding+color conversion+rendering = 7.8ms.

TaskManager shows not very exact::smileysurprised: number, but right tendency. With much exact tools I see much bigger difference in CPU usage.
It is not completely right comparision if you are timing
"avi file->avi splitter->ms dv decoder" while I am "dv decoder->rendering"
But I think file reading and audio playback do not have big inpact full chain performance since it done in parallel threads.
Good luck

Thanks falcom,your test data is excited(the decoding time is only 3.7ms).I alwaysconsider the perf of the demo should be better than "ms dv decoder",so I think Imight get something wrong in my test.So can you tell me how you mearsure the time of decoding is 3.7ms?What the hardware platform you use?How the CPU usage of the demo in your computer?

My CPU isPentium4 3.2GHz. CPU usage less than 1% for Intel DV sample and about 5% for MS DV decoder filter chains. I have timed VideoDecoder::DecodeFrame
inside decompressing loop there are two main functions: DecompressSegment - one segment decompression and PutV525_UYVY_PX - segmet laying out to video memory in UYVY(rendering!). Note: I am using IPP4.1 sample.
Firstly I have commented PutV525_UYVY_PX call to measure decompession time. It is 3.7ms per frame as I wrote. Secondly I have commented DecompressSegment (PutV525_UYVY_PX call restored) to measure it and have got 4.1ms per frame. Replacing PutV525_UYVY_PX with some SSE code I've got less than 2ms.


Pango: what would yousay on this? Does it answers your question?


After tested DV sample I have the question:
(My Computer : P4Ht2 3.2G , WinXP , Compiler: .Net , IPP 4.1 )
The performance of DV decoder is not stable : when open ohter applications ,such as IExplore with active web , CPU occupancy ratio arrive more 15% from 4% . What is the reason ? In a word , DV
decoder is influenced by other unkown applications seriously .
I study performance according to task manager with windows xp except
frame ratio in dv decoder.

Leave a Comment

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