Log in

View Full Version : Decoding speed for 25-50mbps 1080p24 MPEG-2


Blue_MiSfit
11th August 2008, 21:22
Hi All,

I'm doing some testing with re-encoding large (25-50mbps MPEG-2) sources into H.264 with x264 - using DGDecode to feed AviSynth.

I'm experimenting with high speed settings, and I've noticed that DGDecode seems to bottleneck around 24fps. In other words, I have set x264 to its bare minimum (fastest) settings, and still cant get speed over ~24-25fps. CPU utilization is under 50% on my octo-core workstation, and I'm not running any AviSynth filters at all.

I've been using DGIndex 1.4.8 previously - and am trying again with 1.5.0.

Is this expected performance? If so, is there any way to improve things? I want to churn through the first pass as quickly as possible (high volume workflow)

~MiSfit

Blue_MiSfit
13th August 2008, 21:10
1.5.0 didn't help things at all.. I've got a fast, nearly empty 1TB Samsung F1 connected through a hardware SATA/SAS RAID controller, so it's definitely not hard drive / interface bound.

The machine is running Windows Server 2003 SP2 with 2x 3.66 GHz Xeon Harpertown processors and 2GB of FB-DIMM RAM..

??

~MiSfit

Guest
13th August 2008, 22:26
Is this HD video? If so, you need a lot of processor to decode MPEG2 and encode with x264 at the same time.

What fps were you thinking you can achieve?

If you think DGDecode is the bottleneck, then try DSS with a fast decoder installed.

Blue_MiSfit
14th August 2008, 01:03
@neuron2:

Thanks for replying!

Yes, it is HD video, and I agree it does take a lot of processor time!

I was hoping to decode at more than 1x realtime - since the source is 1080p24, and AviSynth can't seem to feed x264 at more than 24-25fps.

I might try DirectShowSource, but then I loose all the wonderful features that DGDecode provides and we exploit!

It's not a huge deal, I can run two encodes in parallel, and the bottleneck becomes less of an issue in the first pass, and it's certainly a non-issue for secondpass. Greater than 24fps per encode is still a dream with our settings on an octo-core.

Anyway - it just seems a little slow to me. Shouldn't MPEG-2 decoding (even of 50mbps 1080p) be significantly faster than decoding (for example) a BluRay source with H.264 video? Is DGDecode multithreaded at all?

To be clear, I'm not complaining, I was just curious :)

~MiSfit

Guest
14th August 2008, 01:11
Load your stream in DGIndex and set playback speed to maximum. Hit F5. Look at the FPS in the Info dialog.

I get 60fps for 1920x1080 video on my E8500 @ 3.8GHz.

The decoder is not multithreaded.

Blue_MiSfit
14th August 2008, 02:12
I'm getting between 30 and 40 fps on my Q6600 workstation, which is roughly the same (single threaded) as the encoding servers.

Might the high bitrate of my source be an issue? Also, some of them are 4:2:2.

~MiSfit

Guest
14th August 2008, 02:20
So you have 35fps decoding speed. Take away CPU from that for your x264 encoding. It all sounds about right.

DGDecode is based on the reference decoder. It is not highly optimized and it is not multithreaded. If you're not busy, the source code is available if you'd like to work on it. :)

Blue_MiSfit
14th August 2008, 02:35
Point taken :)

Sharktooth
14th August 2008, 15:52
libmpeg2 or better ffmpeg/libavcodec... it's a huge work and im not able of doing it right now though... unless my healt conditions get better, which i highly doubt.