[MEncoder-users] new doom9 codec comparission

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


Rich Felker wrote:
>>>>Unfortunately, the quality drop from using threads=2 is, in my opinion,
>>>>unacceptable.
>>>
>>>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.
> 
> If there's ANY visible decrease in quality, do not use threads. Simple
> as that. It's stupid for an encoding benchmark anyway since no one has
> or uses multi-cpu machines for encoding, since they're a waste of
> money, electricity, etc. etc. etc. I don't want to see lavc getting
> chewed out for bad image quality because someone wanted to save a
> little time by using a dual-cpu system to encode at lower quality...

Ok. If you feel that strongly about it then I'll leave threads=2 out.
I'm pretty much neutral at this point (not to mention getting a little
tired of running a zillion tests).

> If we want to make lavc look fast, why not do everything else that
> gets performance at the expense of quality too? Set mbd=0, disable all
> options like qpel, 4mv, ... etc..... :(

That would be overreacting, of course. :)

The point is not to make lavc look fast, the point is to cram in as many
quality-improving options while still having reasonable encoding speed.
qpel slows down lavc considerably (I'm pretty sure more so than any
other single options under consideration besides qns). Before trying
qpel, I figured speed was reasonably good, but there wasn't much headroom.

...actually, now that I look at the codec speeds in the 2004 comparison,
30fps when using qpel really isn't unfavorable...

Anyway, what I was getting at was that it should be possible to have
significantly better performance at very little loss of quality by
combining threads=2 with qpel. As I mentioned before, the quality drop
of using threads=2 is (in this instance) significantly less than when it
is used without qpel.

I wish I had access to a dual-core/dual-processor machine so I could
actually provide some better performance numbers. The reason my argument
is so shaky is that I can't get the actual data, just what "ought to"
happen.

Let me take a look at the subq results tomorrow morning. I'm really
tired now. Probably we can settle on omitting threads=2, but using qpel
and maybe subq=6 or subq=7.

-Corey




More information about the MEncoder-users mailing list