[MEncoder-users] new doom9 codec comparission

Corey Hickey bugfood-ml at fatooh.org
Thu Dec 8 02:41:57 CET 2005

Rich Felker wrote:
>>----docs --------mine---------------reason-----------
>>last_pred=3    last_pred=2   slower, no difference
>>vb_strategy=1  <default>     lower PSNR, worse quality
>>qns=2          <default>     too slow for this test
> qns may be slow, but it's the best perceptual-quality improvement that
> doesn't show up in psnr results. you really should test and see,
> because it might make all the difference!

Yeah, I like qns too. I tested it extensively when Michael first wrote
it, so I know what differences to look for. I wasn't able to see very
much of an improvement, though, so I figured it wasn't worth sacrificing
that much encoding speed. I'm re-testing qns=2 right now with my current
parameters, including threads=2 (see below), to see if it works out any
better this time.

>>Unfortunately, the quality drop from using threads=2 is, in my opinion,
> Definitely. I'm against using threads.

Last night, on a whim, I decided to test qpel. Tests published by Rémi
Guyomarch a few years ago showed a definite PSNR improvement from using
qpel. My own tests confirmed that. Later on, I found that qpel was
decreasing PSNR, and tests by a few other people confirmed that.

Now, oddly enough, adding qpel raised the PSNR from 42.66 to 42.96, with
a definite corresponding quality improvement. I can't say whether qpel
should be recommended in general, but it obviously helps under these
specific circumstances.

Meanwhile, Michael had fixed the PSNR calculation for multithreaded
encoding (thanks, Michael), so I ran a test with threads=2 and qpel.
This brought PSNR down to 42.92, and I can see only a very very slight
decrease in overall quality. Although "qpel" is the best,
"qpel:threads=2" still looks a little better than omitting both options.

Unfortunately, adding qpel brings the second pass' fps down from 29 to
18. The first pass is the same (92), so the average drops from 44 to 30.

Can anyone give me a general estimate of how much of a performance
improvement to expect from using threads=2 on a dual-core machine? I
don't have access to any multiprocessor/multicore setups so I can't test
it myself. If the improvement is better than 40% or so, then I think
qpel and threads=2 is worth it. Otherwise, I think it would be good to
leave them both out. I'm going to wait a bit longer before I send the
results to Doom9, but I would appreciate it if anybody gave me some
feedback about this ASAP.

>>Coming up: snow
>>I've been queuing up snow tests to run in the early morning after that
>>night's mpeg-4 encodes finish. I have a few more that will run tonight.
>>The snow command will be like the one above, except with these differences:
>>for i in 1:vqscale=2.15 2:vbitrate=581 ; do
>>  ...same options as above...
>>  -lavcopts vcodec=snow:vstrict=-2:cmp=1:subcmp=1:mbcmp=1:qpel:vpass=$i
>>Some time tonight my computer will test the effect of threads=2 with and
>>without last_pred=2.
> I don't think snow supports threads.


Also, my test with last_pred=2 came up identical to the default (diff
1.avi 2.avi). Should that be happening? DOCS/tech/snow.txt says
last_pred has "negligible effect on both speed and quality", but I was
expecting the files to be at least a little different. I only ended up
testing last_pred because Michael thought it might help with
multithreaded encoding. Of course, he was referring to mpeg-4, but I
thought I'd try it anyway.


More information about the MEncoder-users mailing list