DivX H.264 Decoder Beta 1
Features of the DivX H.264 Decoder
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:
The options that can be set include:
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:
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:
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:
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 18.104.22.16865.
To begin, these charts show the average frames per second per decoder according to the renderer filter:
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:
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.