Log in

View Full Version : standard .vs codec


Sujao
15th February 2005, 02:08
Hi everybody.

For the last hour I have been reading the MP4 FAQ and my image of codec/container collapsed. To this moment I thought that all the features like gmc, trellis or quartel pixel precision were acquisitions of codecs like xvid. I thought that developers kind of invented new algorithms which made their codecs better than others. Now I read that all these things were descriped in the mp4 description already and it was all there for years. So what is actually the merit of xvid or divx5?

Regards

Sujao

jggimi
15th February 2005, 02:24
MPEG-4 codecs are implementations of the standard. There are distinct differences between the various codec developers. You may be interested in reading through some of Doom9's Codec Comparisons (http://www.doom9.org/codec-comparisons.htm) for a detailed discussion of the differences.

Sujao
15th February 2005, 12:12
OK I read the guide but it only compared the codecs without acutally clearing up the distinction between codec and standard. Could you describe it in detail? You say implementation. But this doesnt sound to me very sophisticaded. If all the tricky techniques are already described in the standard than what job do the codecs do? I suppose I am wrong but this reminds me of nvidia and its graphic cards distributors. They recieved all the layout ready to use and just built the chips following a tutorial. But they didnt really "invent" anything. I mean...how far do the specifications of MP4 go? Do they only say: MP4 must use 3 warp vector GMC and thats it...leaving the developers of the codecs the choise how to implement this or do they say: OK, we have 3 warp vector GMC which is described by this algorithm and these abrreviations....following 10 pages of technical stuff describing GMC with every mathematical detail.

You know what I mean?

killingspree
15th February 2005, 13:51
hi,

actually your second assumption is right. the mpeg4 standard of cours has to be very clear and specific about the technical aspects of the encoders. After all the standard is there to ensure that a generic mpeg4 decoder (like ffdshow or any hardware decoder in a standalone player) can decode any standards comliant mpeg4 stream, no matter what encoder was used. Of course this restricts the algorithmic 'creativity' of the coders, but on the other hand the real challenge of writing a codec is not to 'invent' new algorithms, but to make those algorithms useable for the general public. If you ever tested one of the earliest implementations of a standard you know what i mean. they are slow, buggy and definitely not user friendly. xvid (or divx for that matter) are fairly mature implementations with great encoding speeds and implementations of the most advanced functions. they come with a vfw wrapper so you can encode through your favourite video application and have a nice and easy to navigate gui so you can adjust the settings easily.

on the other hand if you take a look at some implementaions of the h.264 standard (mpeg4 avc; xvid is mpeg4 asp) you can easily spot that they are not even nearly as matured and useable as the common mpeg4 asp codecs. the first time i encoded something in a codec following the h.264 standard (and this wasn't all too long ago) i had to use a commandline encoding tool that only accepted raw yuv data. encoding speed was somewhere between 0.5 and 0.7 frames per second and decoding was somewhere around 10 fps.

right now you can even encode your dvds to x264 (another h.264 implementation) in gordianknot and although the codec is still immature and lacks quite a few features the encodes already look very promising.

anyway,
hope this clarifies matters a little bit
kr
steVe