[MPlayer-users] trying out qns
Corey Hickey
bugfood-ml at fatooh.org
Fri Feb 6 09:08:12 CET 2004
Ok, Michael just committed an optimization to qns, so I went and did a
similar comparison to my last, this time with actual framerate
measurements based on the user-time of encoding. Then Michael committed
another change, and I had to do it all over again. By the time I've
finished writing this, he'll probably have improved something again.
Hmmph. :( ... ;)
---------
Methods:
My methods here are pretty much the same as in the last test: same clip,
same encoding parameters. -Except that I encoded with three versions of
mencoder (actually, lavc).
versions:
All three mencoder versions I used are named "MEncoder
dev-CVS-040205-16:25-3.3.2". Is this when the last commit to mplayer cvs
was?
"old" = includes the original qns support
"new" = includes the commit logged as "quantizer noise shaping
optimization"
"new2" = includes the commit logged as "analyze the gradient of the
error surface to avoid a few checks in the quantizing noise
shaper"
Also, I wrapped the mencoder command within "time" so I could get
reasonably good framerate measurements. The measurements were all taken
on an AthlonXP 2200+ clocked at 1890.585 MHz. Framerates are calculated
as number-of-frames/user-time.
-----------
Results:
The differences in PSNR between lavc versions were negligable. Sometimes
Cb and Cr differed by 0.01 or 0.02 db, but "All:" never changed, so it's
not worth reporting. See my first "trying out qns" message if you want
to see the numbers.
The encoded video was different among the different versions (within the
same qns= value): some small parts of the picture looked slightly
better, and others looked slightly worse. Differences in overall quality
were very difficult to discern, with two exceptions:
1. "new" qns=1 was exactly the same as "new2" qns=1. For each dumped
frame, the corresponding md5sums were identical.
2. To me, the differences in "new2" qns=2 seemed to be mostly
improvements, but I might be biased by now.
The exciting results, however, are in the performance measurements. As
in my previous report, every test includes trell. For qns=0, the
differences are probably due solely to a margin of experimental error.
The percentages are calculated against the average fps of qns=0 (59.43).
qns=0 (disabled)
old: 59.72 fps 100.5%
new: 59.22 fps 99.6%
new2: 59.36 fps 99.9%
qns=1
old: 15.94 fps 26.8%
new: 18.60 fps 31.3
new2: 17.94 fps 30.2
qns=2
old: 9.60 fps 16.2%
new: 16.39 fps 27.6%
new2: 17.39 fps 29.3%
qns=3
old: 3.31 fps 5.6%
new: 10.27 fps 17.3%
new2: 12.04 fps 20.3%
-----------
Conclusions:
There isn't much to conclude based upon quality. I think qns=2 is
slightly improved, overall, but I already liked qns=2 best anyway. It's
really hard to tell.
In any case, now that qns=2 performs almost as well as qns=1, there
isn't much reason not to use it unless somebody finds places where qns=1
definitely looks better.
qns=3 is no longer prohibitively slow, but I'd want to be sure of an
improvement in quality before using it.
-Corey
More information about the MPlayer-users
mailing list