DivX H.264 Decoder Beta 1


Features of the DivX H.264 Decoder

 
  • H.264 Main, High, High 10, High 4:2:2 profiles
  • Full interlace support (MBAFF, PAFF, mixed)
  • Multithreading supporting up to 8 CPUs
  • Optimizations for MMX, SSE, SSE2

Configuring the decoder

Once installed the decoder can be configured either by accessing the filter property page from a host application (i.e. a media player), or by selecting the H.264 Decoder Config link in the DivX programs group on your Start menu:



Click to enlarge

The options that can be set include:

 
  • Deblocking

    Deblocking should normally be on for H.264 video because the encoder assumes that the decoder will perform in-loop deblocking in accordance with the format specification and codes the video accordingly. Turning off deblocking will therefore introduce artifacts during playback, but because deblocking is computationally expensive this option can be desirable for low-powered systems that could not normally decode H.264 or where battery life is at a premium. Disabling deblocking does not look too bad with most content. Deblocking is enabled by default.

  • Multithreading

    When enabled, this option allows the decoder to subdivide the decoding process across multiple CPUs or cores to accelerate decoding and provide a smoother playback experience. Multithreading is enabled by default.

  • Low latency

    This is an experimental feature that may increase the frame rate for more basic bitstreams at lower resolutions, or on systems with larger CPU cache. Low latency is enabled by default.

  • Disable logo

    Turns off the small DivX logo that appears in the lower-right of the picture for a few seconds at the start of playback. Disable logo is disabled by default.

  • Use default encoding settings in this application When this decoder filter property page is accessed from within a host application, this setting instructs the decoder to turn off features such as color correction and the logo overlay and turn on features such as deblocking to ensure that DivX video sources are processed in their original form without any adjustments applied. This is important when transcoding for example. This option is disabled by default and is set on a per-application basis.

  • Brightness, Contrast, and Saturation

    These sliders enable image adjustments that may improve the appearance of H.264 video on your computer. Each slider is centered by default.

Creating our test clips

To test the new decoder we encoded a 12 minute long video sequence from Last Man Standing, a very sharp source clip combining high texture detail, fast motion, strong color contrast, flashing lights, frequent scene changes, computer graphics, indoor and outdoor scenes, and smoke and particles. It was encoded using x264 version 0.59.807 08b5132 with the following options:

 
--keyint 250 --bframes 4 --b-pyramid --ref 4 --aq-strength 0 --partitions "all" --8x8dct --direct "auto" --weightb --me "umh" --merange 32 --subme 7 --b-rdo --mixed-refs --trellis 2 --no-fast-pskip --no-dct-decimate --sar 1:1

We ran one encoding using --qp 16, resulting in output with an average data rate of 45.57Mbps, and another with --bitrate 15000 --pass <1,2>. The 45 Mbps stream is extremely high quality and the high data rate ensures that during benchmarks the majority of the CPU time is spent in the decoder (as opposed to the file splitter, renderer, or host application). The 15 Mbps stream represents a rate more typical of common 1080p material.

Our test clips are too large to post but you can view some representative sample images:



Click to view slideshow


Results of our own initial testing

In order to provide some insight into Beta 1 we ran a few benchmarks against some mature third-party H.264 decoder filters, namely CoreAVC 1.7.0 and FFDShow-tryouts rev 1945 CLSID build, dated 2008-04-17. For each decoder we used GraphEdit to create a filter graph comprising the Haali splitter, the H.264 decoder and the default video renderer filter. The graph configuration looked like this:



Click to enlarge

We disabled the clock for the graph, displayed the properties for the renderer filter, used Process Explorer to measure the total CPU time required to decode each clip subtracting any CPU time accumulated until the graph was run, and also noted the average frames per second achieved. We decoded each clip with every decoder three times for all of our dual core benchmarks but only twice for our single CPU benchmarks because these take much longer and the dual core tests had showed almost no deviation across multiple repetitions for any decoder on our test machine. For fairness, for every decoder we chose the result with the highest average frame rate per second of CPU time.

Our test system used an Intel Core 2 Extreme X6800 (Conroe) CPU @ 2.93Ghz, 1066Mhz FSB, 4MB of L2 cache, 4GB of DDR2 RAM, and a PCI-Express NVIDIA Quadro FX 3550/4000 SDI video card with 256MB of memory, a 256-bit bus, and ForceWare version 6.14.11.6265.



Click to enlarge

To begin, these charts show the average frames per second per decoder according to the renderer filter:



Click to view charts

You can see that on our test system Beta 1 already achieves far more frames per second (average) than FFDShow-tryouts, and also bests CoreAVC in three out of four cases. But how much CPU time was used by each decoder to obtain these results? A fast decoder is not necessarily performing well if it consumes too much CPU time. To further investigate the performance of each decoder we also charted the total CPU time used in each case:



Click to view charts

Once again the decoder performs extremely well for it's first beta release! The charts clearly show that the DivX H.264 decoder is not simply achieving high frame rates at the expense of excessive CPU time. Performance will be further enhanced as we roll out more beta releases at DivX Labs. Stay tuned ;)


An update on performance

Since releasing Beta 1 we have gathered a lot of information from members of the beta group including performance statistics for many more CPU types. Although we can consistently reproduce the above illustrated performance on our test system which was not specially selected, proving the high efficiency of the decoder core, third-party performance tests on other processors have shown some variance - particularly those performed with CPUs that have less L2 cache. This is somewhat expected as early versions of the decoder are tested for the first time on a wider range of hardware and the current beta version generally performs to within 10% of the frame rate achieved by CoreAVC on the same system. We are actively working to ensure that the decoder performs equally well across all common processor configurations.


Downloading DivX H.264 Decoder Beta 1

This version of the H.264 Decoder has been superseded by the release of DivX 7. You can now download the DivX H.264 Decoder for free as part of the DivX for Windows bundle.

Divx 7

The new playback version on the web site is sweet when can we expect version 7 of the Codec its self currently its still 6.8.5...

Just wondering cause I still use VDMod for most of my encodes...

Remoulade for MacOS? PPC, too?

I'll just take it as a given that Project Remoulade will come to MacOS, too. But will it support PPC?
Playing single-sliced 1080p content (and no, that does not included the friggin sliced trailers on Apple's QT-trailersite, dear Maczealots!) is really an issue in MacOS, even for the first generation of Intels or any Intels below 2GHz (e.g. Mac Minis). There's no CoreAVC and no GPU-acceleration for H.264 replay in MacOS and it does not appear Steve Jobs has sleepless nights worrying how to bring this to the Mac... The only thing for multithreaded single-slice decoding in existance is a rather experimental mplayer-patch that never made it into the official build because even its author considers it an ugly hack!... And that is available in MacOS only through XBMC, which runs only on Intel.
All the people that still work with Dual- or Quad-G5s (like me! ;-) because they're plenty fast for everything they do (e.g. working with H264) would simply *love* a speedy decoder like Remoulade and I'll buy it in a nanosecond when it comes out for MacOS - supporting PPC!...
Altivec is rather good for decoding AVC, this can be seen on the PS3, which can easily decode 1080p with 60fps at 1.5x the speed without any problems... So please do take a little time to make a PPC version and think of the millions of G5-users (almost all of them Dual! ;-) that would just love to have a speedy codec like Remoulade!

Remoulade for MacOS? PPC, too?

DeeKay,

As much as I hate to disappoint I don't know of any plans for a PPC build, at least in the first version. Certain features and priorities will be determined by demand, so if there really are a lot of interested PPC users it's something that could be considered. Personally I think it could be hard to make a case for a platform that Apple itself no longer develops though.

problems with using Remoulade + Reclock :/

truly awesome decoder, I'm stunned!

but 23.976/24 fps files are recognized as 25 fps by Reclock, as explained here :
http://forum.doom9.org/showpost.php?p=1164031&postcount=272

OTOH 29.97 are perfectly recognized.

any chance for a fix please please please ?

TIA,

Nothing but good news

Was very happy to see DivX H.264 Decoder Beta 2 over-rule Nero for decoding AVC H.264 encoded content. It always burned my butt that installation of CD authoring software immediately changed video decoding for some files to Nero Resize and Nero Video Decoder. This is something CoreAVC has not done/can not do. (Codec Sniper is not an answer for the timid :)

I haven't found any 1080p video content to successfully challenge DivX H.264 Decoder Beta 2. Everything plays smoothly. Links to CPU intensive video files are welcome. Please, nothing at Apple.com. It is too hard to snatch a direct download URL without QuickTime installed. I played some 1080p Nvidia PureVideo files and they play great. I can't figure out how or where to send private messages or I would include more detailed hdwe specs.

Please make the preference setting to show or not show the Divx logo universally across H.264 and DivX codecs. I enjoyed the little animation of the logo slowly disintigrating at playback. But unfortunately it was burnt to a destination transcoded file and not viewed as an overlay. My bad for not checking.

DirectShowSource("", fps=xx) works great using VirtualDubMod Surround 1.6 AviSynth and DivX H.264 Decoder Beta 2. Moving an MKV container of AVC H.264 to DivX 6.8 720x406 (so it plays on DivX Ultra hardware) yields good results. I can't make anything screw up or break or go slower than anticipated. I try using AVISynth built-in filters or the DivX codec to resize and crop and no suprises. That's all on the DivX side not the AVC H.264 decode side anyway.

Again, I got no complaints and can't find anything less trivial than the logo setting which I hope is integrated into the final rev with DivX. (Make "Show DivX logo watermark" and "Show Logo" a single tick-box across both codecs.)

Thanks!

Thanks for your feedback, glad to hear the beta is working well for you so far! With regard to the logo, one reason that the checkboxes are not consolidated at present is that the H.264 decoder is still in the early stages of its life. As we move closer to a release later in the year we can look at bringing certain aspects of the codecs together.

To send a private message click a user name to see that users profile page and then click "Write private message". You can find users by clicking "Search users" on the left-hand site navigation bar while you are logged in.

The fact that we are currently overriding other H.264 decoders is actually not intentional, we may change that behavior in Beta 3 so you might need to change filter merit values at that time.

I have been looking for

I have been looking for sites like this for a long time. Thank you!
female cialis
cheap viagra
cheap cialis

decoder issue

i couldnt get WMP(same with graphedit) to use this codec without Haali media splitter installed. and it wont work with divx player(quicktime did)even with haali.

Correct

This decoder is not yet integrated with DivX Player, and you do require the Haali Splitter to use the decoder for now.

How is the playback on a low end system?

Hi,

I have a Vista Media Center with only a 1.8G dual core machine.. (because it must be low power, low noise)

I use the CoreAVC codec for all my x264 files, most of them are all MKV files between 720p and 1080p. But the 1080p my machine has problems decoding it.. (WMV 1080p are fine, but that is a easier codec)

So i was wondering how does it really play on low end systems (if you call 1.8 dual core low end :) )

The thing is CoreAVC is not really into using the GPU yet.. They have problems because they dont get feedback from nvidia or ati how to use it (they don't want to use the windows api's because then they don't do it the same on all platforms). I find that a stupid decision because i guess the largest customer group are on windows. So help them first....

GPU support would really help in my case because i use a ATI 3450 in my Vista MediaCenter and that card can do it completely standalone... (at least almost from what i hear)

Anybody here already tested it under Media Center (XP or Vista?)
Because that is the only player i am interested in.

cialis super active levitra

Hello to all, I also have

Hello to all, I also have problems with the dvbviewer and this codec

Working on it

We're working on compatibility with DVBViewer now :)

more samples for me to test

I've some more test samples and transport streams i'm going to throw at the decoders and see how they fare, including a rather long (3hrs+)soccer clip.I've also noted some further changes in the itv hd stream, I'm going to leave the speed tests to the other folks, as my main interest here is helping to get the decoder to handle as many variants of h264/avc encoded transport streams/sources as possible.

Alongside with DVBViewer,

Alongside with DVBViewer, the subj crashes DVBDream ver. 1.4 series.

The culprit might be, as it was stated already, incompability with DVBDream's proprietary source/splitter/demuxer (ddsource.ax in DVBDream distro).

Besides, all my testing streams are PAFF interleaved, failure to correctly process these may render the graph unworkable. Though I admit the probability of this being a major reason of failure is slim.

However, I would love to see the product's compatibility to a specific North American variety of PAFF streams.

So far, so good....

De-activated H264 decoding by ffdshow on MPLAYER, and let DivX decode it instead.

More fps, less CPU, and no problem whatsoever with any of the files i tried. :o)

Now need to try the update for DivX connected.

MOAR!

kittaaaaaaaa!

Some testing...

Chart of my data:
http://img153.imageshack.us/img153/289/chartcopy22ro3.jpg

LOL, it took me a few minutes to figure out some Excel stuff.

Connected not working with Rémoulade

For the moment, you can forget about using DivX AVC with Connected. Due to a tiny, but very efficient bug in Connected server, DivX AVC won't get used by Connected no matter what you put into the config!

As a matter of fact the DivX AVC codec didn't get used here either, but instead, although I had added the DivX AVC decoder part to the config and removed avc1 from ffdshow, AVC still got decoded by ffdshow. Only noticed by coincidence.

Thanks to d00kl1 the bug is already fixed and an updated server will be available soon.

Problem playback divx connected

I noticed that the decoder will not work with the divx connected platform.

Check out Kamiwa's patch

Kamiwa has modified the config file for Connected to enable the decoder. Check out this entry on his blog (off-site).

Thanks Kamiwa!

Hmm,

I had already modified the config myself. Just checked against the config from Kamiwa. There the same. Unfortunatly Connected won't work with The Divx h.264 decoder.

Here's what Kamiwa has to say about it:
(can't confirm this 'bug' myself)

Quote:
For the moment, you can forget about using DivX AVC with Connected. Due to a tiny, but very efficient bug, DivX AVC won't get used by Connected no matter what you put into the config!

I noticed that while the

I noticed that while the DivX H.264 decoders performs well on several HD Trailes I have tested, it doesn't work with my own encodes! Those files were encoded with Avidemux and x264. They play 100% fine in MPlayer and with MediaPlayerClassic + ffdshow. But with MediaPlayerClassic + DivX H.264 Decoder they either don't play smooth (although CPU load is at ~5%) or they even crash...

More info including samples here:
http://forum.doom9.org/showpost.php?p=1138677&postcount=72

playback of problem transport stream

I have a transport stream from itv hd which has the video stream
information bit set to private.
Elementary Stream PID 3401 (0x0d49) ISO/IEC 13818-1 PES packets containing private data
If you take a look at bob0r's h264 samples and locate the itv hd one you will see what I mean,(this is my own sample though) to get around this minor issue I've remuxed it, I believe there is a change in the bitstream during the recording, I show no errors in the transport stream either original or remuxed, but most decoders fail with this stream at the problem point. results below

divx h264 decoder beta 1 - decoder hard crash (closes application)
mainconcept- skips frames where change in bitstream occurs
cyberlink - decoder hard crash (closes application)
coreavc 1.6.5 - displays affected segment but does not decode correctly (pc1)
coreavc 1.7.0 - displays affected segment but does not decode correctly (pc2)

If you would like a sample of the affected part of the stream contact me, and I'll make arrangements for you to receive it.

Upload info

I'd love to have a sample, I'm about to send you some upload details via private message.

Premiere HD Sample File, and Deinterlacer not working

Ok, her you have some little Sample file i have recorded from Premiere HD Germany. Deinterlacing doesn't work with this File.

http://rapidshare.com/files/115387837/sample.ts

Decoder does not de-interlace

This decoder does not deinterlace. It decodes interlaced material and passes it to the renderer. It is possible to instruct certain renderers to deinterlace and also to perform software deinterlacing. We'll consider those features later.

I noticed this as well. I

I noticed this as well. I don't think the decoder currently does interpolated deinterlacing though.

TS-records+mpayer+DivX H.264=fine

I was able to play my ts records (eg Planet Earth in 720p50, recorded on EinsFestival HD during HD showcase) with mplayer, no problems.
DVBViewer crashes, when I switch to ORF HD (there is no other 720p channel on Astra 19°&DVB-S), DVBDream can't use DivX H.264.

4:2:2 Encoder?

Usually all h.264 encoders encode video format 4:2:0. Developers h.264 say that this is enough, on the other hand uses 4:4:4 digital cinema. Are there examples of free 4:2:2, which may lose the new Divx decoder?

CyberLink- and Elecard-Demuxers

See, that the DVBViewer crash issue has already been reported here...

Guess you know it, but I am posting it anyway... the DivX H.264 decoder filter does not connect to CyberLink (PDVD7) and Elecard demuxers.

Up until now I could only get a working graph with Haali.

Good info!

Thanks for the info, I'll check that out tomorrow!

no GB-PVR

Tested some videos and it works fine in WMP so far.

I couldn't get GB-PVR to recognize it, though. It might be an issue with the program since it doesn't recognize ffdshow either. I'll try asking in their forums.

PPC based comercial AVC decoders

the main part im most interested in is are you going to take 10 minutes to compile and make available a PowerPC/Altivec version for the PPC based PS3 linux (current Gentoo and Ubuntu binarys), and even More so the PPC based Genesi Efika (ask bill for a board so you can test it here)
http://www.powerdeveloper.org/

a x86 Slax http://www.slax.org/forum.php module and FreeBSD would be nice too, if you can find the time for a one off compile now and then!

:wave: ,apparently BetaBoy cant find the time to compile,tweek his product for the (powerPC)PPC/Altivec evolving (mobile) markets at this time so perhaps you can fill that space?

also can your beta AVC decode codebase be programed in to todays FPGA PPC based chipsets and SOC's ?

do you allow for this ability in the current codebase?

http://www.cableforum.co.uk/board/12/33628733-virgin-media-phorm-webwise-adverts-updated.html

First Impression: Nice, but

Hi

I just started using the Decoder and I was positively suprised how good it does play all movies in GraphEdit - but as soon as I tried to use DVBviewer (my TV-watching software) I got a bad suprise. It crashes on every HD (h264) channel I recieve as soon as DivX h264 is chosen for h264 playback.
But the decoder is able to play the transport streams I've recorded: STRANGE!
I've no idea whether the problem is a DVBviewer or DiVX related I only know that DVBviewer works fine with CoreAVC (has some issues with some channels but even with the transport streams) and Cyberlink H264 decoder.
The biggest thing I'm wondering about is whether there will be any gpu-based acceleration?

CHfish

On DVBViewer

We've had several reports of problems with DVBViewer, I'll get a box set up here at DivX so that we can track down the issue.

We're currently working on optimizing the software decoder and rounding out its feature set, but I personally am also excited by the prospect of GPU acceleration and we're currently discussing it amongst the team ;)

DVBViewer crashes for me too

DVBViewer crashes for me too on H264 channels. However, i was able to record a h264 transport stream that also crashes my playback application (Zoom Player) when i am using the divx h264 decoder - it works fine with coreavc. Maybe i am able to cut this crashing transport stream to a smaller downloadable one that helps with the debugging.

edit: i just tried cutting the crashing ts to a smaller file size with h264 cutter. after cutting, it doesn't crash anymore though. I'll try a few other things to make it smaller.

TSSplitter

Try TSSplitter. You can make little peaces of your sample with it. It leaves the streams untouched.

http://www.ffprojects.net/tssplitter/tssplitter.htm

Maybe you should first try to play it with Haali Media Splitter. It may be that the splitter/demuxer used in ZP has problems with your sample...

Yes, i always use haali

Yes, i always use haali splitter though and the sample works fine with coreavc. Here is the sample for anyone interested - i simply truncated the file since only the beginning is making the problems anyway i guess.

https://bnz.homeftp.org:81/public/h264-recording-crash.ts

Still crashes with Beta2

The example h264-recording-crash.ts still crashes my Zoom Player when i use the divx beta2 filter. I am not sure whether this problem is related to the DVBViewer problem. Another minor thing: it would be good if the preference page displayed a build number or "beta 2". There is currently no way to figure out whether the install worked as expected and the used filter is in fact beta 2.

Logged

I have a bugged logged against it.

Thanks for providing the test stream bnz!

further information

Hi DigitAl56K,

the source of the problem seems to be the communication between DVBViewer DVBSource filter (demuxer) and the decoder. It may already be solved if you get CyberLink and Elecard working...

Otherwise... do you have access to DVBViewer stuff? The TSPlayer is a small TS file playback utility (with customizable H.264 decoder filter) which also uses the DVBSource filter. Some PAFF and MBAFF TS samples are provided by b0b0r.

Also interesting may be the fact that DVBSource by its nature is a push filter (not pull which is mostly used for file playback).

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.