[XviD-devel] 2pass results
Edouard Gomez
ed.gomez at free.fr
Tue May 27 03:02:01 CEST 2003
Ok, done some testing trying to remove the nastiest things i've found in
the 2pass code.
Old code formulas:
- treat bframes as pframes*, scale its length, do the scaling as usual
(for pframes), scale back frame length to a bframe length, compute the
bframe quant directly.
* this means all formulas are using pframes stats like the assymetric
pframe length etc etc.
Unidirectional code:
- scaling code uses only current frame type stats (unlike previous
point *). Instead of scaling a bframe independently during the second
pass, i make the assumption that if its previous reference frame has
been scaled, i can use the usual bquant formula to find the current
bframe quant that would scale the frame right.
Bidirectional:
- same as unidirectional but i use previous and next ref frames' quant.
as future ref frame is not known when rc_plugin_before is called for
the bframe, atm i do a quick/dirty approximation of its scaled
quantizer. I'm sure i can improve that.
At the moment my hacks are probably missing something important, but now
i make bframes a bit less "high quantized". And in my 2 "DVD quality"
tests, i have a +0.1dB gain (y channel). It's not high, but i know i can
improve the algorithm.
Question: is someone really using alt curve ? Cause doom9 threads
suggest to use linear scaling. So...
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Some Results, hope to be more detailed when i finish adding debug stuff
to the mencoder module:
Using mencoder + XPerimental ve_xvid.c for dev-api-4
+
Only using linear curve scaling (no alt_curve) and lanzcos resize algo.
Matrix2 trailer Ultra complete -> 640x346 at 800kbps -- No filters
Old code: xvid: y(dB):38,210143 u(dB):41,621423 v(dB):42,471346
My unidirectional code: xvid: y(dB):38,345053 u(dB):41,823879 v(dB):42,633404
My bidirectional code: xvid: y(dB):38,367103 u(dB):41,832811 v(dB):42,643083
Starwars EpII Chap24 5000frames -> 640x272 at 620kbps
Old code: xvid: y(dB):45,439263 u(dB):50,809059 v(dB):51,805051
My unidirectional code: xvid: y(dB):45,497860 u(dB):50,852539 v(dB):51,858632
My bidirectional code: xvid: y(dB):45,530994 u(dB):50,857210 v(dB):51,867352
Could someone give me results for cvs_head (only win32 users can help
me) and the matrix trailer test ? (i'm using an YV12 filter/encoder
pipeline, no RGB transformation)
--
Edouard Gomez-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
Url : http://edu.bnhof.de/pipermail/xvid-devel/attachments/20030527/3c0a9be5/attachment.bin
More information about the XviD-devel
mailing list