[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