Re: project extension proposal
"Aitor Garay" <[email protected]> Tue, 25 Mar 2003 21:22:14 +0100
| Newsgroups | gmane.comp.video.h264.devel |
|---|---|
| Message-ID | <006501c2f30c$39c7fcc0$bcb31fac@HAJC0062> |
> I guess I should know exactly what the goals of hdot264 are, but assuming is
> the creation of a usable codec there should definitely be a rewrite in the
> sources.
I agree with you, but as Christoph noted in previus messages, people will
not get fun in working in a rewrite of the codec, at least in the initial stages where
no visible results are get. I agree with him also. It's a tricky issue... :-(
> The same approach would sound like a good idea for hdot264 although it
> sounds like quite a daunting task!
It is ineed. And more with H.264!
> About Java implementations... I don't think it would be a good idea as it
> would be incredibly sloooow, and you can model things more than fine with
> simple C or C++.
Well, as i stated early, the objective of the Java implementation is not to be
performance efficient. It aims to be clear, safe, extensible and flexible. Java
( or C#, or Eiffel) make the task much more safe, no more out of index array
accesses...
I understand that most of the people would not be interested in a clean Java
implementation, since it use is mainly for learning and research. People want
an efficient implementation that outperforms DivX and similar codecs in quality/rate.
Respecting the C/ASM version performance issue, it's going to be a headache
anyway. I have been using the H264 codec from VSS. They have made a great
work with it, and they report that for full frame _playback_ they need a 3GHz Pentium
IV ( http://forum.vsofts.com/viewtopic.php?t=18). Enconding is even much more
painfull: intra prediction, CABAC or CAVLC, multiple reference frames, in-loop
deblocking filtering... not taking into account the huge complexity this supposes.
A performance efficient implementation _must_ use MMX/SSE/SSE2/AltiVec
instructions to parallelize things up. Much times, a choice must be done, efficiency
or the rest ( clear code, flexibility...). Anyway, i believe that a clean new C++
implementation could achieve both goals, even using native SIMD code. May be
it is not necessary to resort to Java for it...
/AITOR
> -----Original Message-----
> From: [email protected]
> [mailto:[email protected]] On Behalf
> Of Aitor Garay
> Sent: Tuesday, March 25, 2003 8:37 AM
> To: [email protected]
> Subject: Re: [Hdot264-devel] project extension proposal
>
>
>
> > I guess most reference implementations are like that. At
> least MPEG-4
> > versions are. They grew over years, being changed all the
> time. Once
> > they compile they are good to "fix" a bitstream format and test for
> > compliance, but learning from them it difficult.
>
> Not confirmed, but I have heard that the roots of the
> H.264 reference software go to MPEG-2. It evolved to H.263
> and now to H.264. Too many (de)generations...
>
> > My suggestions is: Do it the way XVID did.
> > Start more or less with the reference implementation, so you have a
> > running plattform. Then replace more and more code by more
> readable and
> > hopefully faster code until finally all old code has been
> replaced.
> > Starting from scrathc, without a running encoder,
> developing is no fun.
> > You have to see the codec advancing, getting faster, getting more
> > efficient.
>
> Your are very rigth, there is no fun in developing a
> codec without getting inmediate results, but there is also no
> fun at all in refactoring functions of hundreds of lines that
> do nine or ten different things at the same time and whose
> name has nothing to do with any of them. And if those
> functions use heavily global data things get even worst... :-(
>
> > If you (and others) are willing to create a java model: Great! Many
> > people will benefit from it. But I doubt that many people
> will be as
> > altruistic, to create a new version that runs even slower than the
> > present one. Much more people will be interested to help create a
> > _faster_ and therefore _usable_ version.
>
> Your are again rigth, but may be so much complexity in
> the reference software will make people think twice before
> trying to hack into it. Someone with great insight of it
> should start with a deep cleaning and refactoring to make it
> more amenable to general hacking.
>
> /AITOR
>
>
>
>
> -------------------------------------------------------
> This SF.net email is sponsored by:
> The Definitive IT and Networking Event. Be There!
> NetWorld+Interop Las Vegas 2003 -- Register today!
> http://ads.sourceforge.net/cgi-bin/redirect.pl?keyn0001en
> _______________________________________________
> Hdot264-devel mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/hdot264-devel
>
-------------------------------------------------------
This SF.net email is sponsored by:
The Definitive IT and Networking Event. Be There!
NetWorld+Interop Las Vegas 2003 -- Register today!
http://ads.sourceforge.net/cgi-bin/redirect.pl?keyn0001en