[XviD-devel] x-vid algorithm explanation?
Christoph Lampert
chl at math.uni-bonn.de
Sat Aug 7 13:23:37 CEST 2004
On Fri, 6 Aug 2004, Ricardo Garcia wrote:
> Hi, I've been searching in the web for an explanation on how
> divx/xvid/ms-mpeg4 work.
Better also search the newsgroups/mailing likt archives. Much is hidden
there in less structured form.
I always wanted to start a MPEG-4 Wiki, but I never found time.
> I read a bit of the MPEG4 standard, and it's filled with
> non-implementable (yet) stuff as sprites, textures, etc etc etc.
>
> I'd really like to know how the algorithm works (mainly, to see how it
> can be improved ;-) ). But all the explanations are rather about a
> "how-to-encode-your-own" stuff.
>
> Can you guys give me some directions? (and no "get the source code"
> answers, please).
Okay, I can give some directions, but I'm afraid the walking you have to
do yourself...
First of all, it's not good to start with MPEG-4, because that has many
advanced and (as you noticed) often unused features. Start with
1) JPEG because that's basically the same as MJPEG, which is almost MPEG
with keyframes (aka I-frames, aka I-VOPs) only
you will learn about (macro)blocks, about DCT and run-level-encoding.
Then search for
2) MPEG1 and/or MPEG2 (there isn't much about MPEG1, I believe, but they
are very simlilar)
that tells you the ideas of Motion Estimation and Motion Compensation, as
well as some predictions methods (basically, how to use the fact that
video signals have high _spacial_ and _temporal_ _redundancy_.
Finally, search for
3) overviews of MPEG-4, but not the standard, more like PowerPoint
presentations or PDFs online.
They are usually called "The upcoming MPEG-4 standard blabla". Those
sometimes go into detail about the differences between MPEG-2 and MPEG-4,
which are details, nothing crucial. In those, you can first skip
everything beyong the "Simple Profile", which means discarding almost
everything that isn't known from MPEG-2 already. If possible, you can
search for the "Advanced Simple Profile" as well, that's basically what
XviD, DivX etc. implement. Everything beyond (in particular Sprites,
arebitrary shaped Objects, interactivity, scalability) you can forget.
4) at any time, feel free to ask in the forum at xvid.org or here for
explenations.
If they are specific like "How does motion compensation deal with blocks
outside the image" they are usually easy and fast to answer. More general
stuff like "How does MPEG-4 work?" might end unanswered, because one
could spend weeks answering that. Also, it's good to give you background
(first year student of english literature, or PhD in astrophysics),
because that makes it easier to adapt the techincal terms.
chl
More information about the XviD-devel
mailing list