[MPlayer-dev-eng] [LONG] PSNR comparison, new source and results

Romain Dolbeau dolbeau at irisa.fr
Tue Jun 15 10:46:26 CEST 2004


Hello all,

New results from my attempt at finding the "best" lavc options.
I used a very different file this time ; instead of the slow-motion
scene from "CT,HD", I used a very fast-moving from The Matrix.
5000 frames from the subway fight, when Smith beats up Neo.
I also used 2-pass encoding, only looking at the PSNR result
of the second pass.

filters: "-vf crop=720:422:0:78,scale=576:238"
(yes, not multiple-of-16 height, sorry, but it uses the same AR than
the properly cropped source and I started the runs before Rich told
me it was bad)

common options: "vcodec=mpeg4:vqmin=2:vqmax=31:keyint=125:vpass=X:"

I also forced the following options in my tool:
"vme=4:mbd=2:qpel:trell"

The various tested option were:

{pre,,sub}cmp=2, 3 or 6
{pre,}dia=1 or -2
vmax_b_frames=0 or 1
mv0 or not
qprd or not
v4mv or not
cbp or not (we always have trell)
vlelim=-4 or not
vcelim=7 or not
vbitrate=500, 650 or 800

768 tests per bitrate (2304 in total)

1) Result a 500 kbps

best combination:
vme=4/cmp=2/precmp=2/subcmp=2/dia=-2/predia=-2/vmax_b_frames=1/mbd=2/qpel/mv0/v4mv/trell/cbp

* vmax_b_frames=1 was mostly negative ; in fact, the above line give nearly
   as good a result with vmax_b_frames=0, losing on chrominance but winning on
   luminance.
* mv0 is a win (except 2 samples with a negligible loss)
* v4mv is always a win
* qprd is more often than not a loss
* cbp is nearly always a win, but variance is small either way
* *cmp=2 is almost always the best choice
* *dia=-2 is nearly always a win over *dia=1
* vlelim & vcelim are both always a loss

2) Result a 650 kbps

best combination:
vme=4/cmp=2/precmp=2/subcmp=2/dia=-2/predia=-2/vmax_b_frames=0/mbd=2/qpel/mv0/v4mv/trell/cbp

* vmax_b_frames=1 was usually negative, but by a smaller margin
   than for vbitrate=500. the above line give nearly the same
   result with vmax_b_frames=1, losing on luminance but winning
   on chrominance (same change as above for 500 kbps)
* mv0 is a win (except 2 samples with a negligible loss)
* v4mv is always a win
* qprd is often a win
* cbp is almost always a win, but variance is small either way
* *cmp=2 is almost always the best choice
* *dia=-2 is nearly always a win over *dia=1
* vlelim & vcelim are both always a loss

3) Result a 800 kbps

best combination:
vme=4/cmp=2/precmp=2/subcmp=2/dia=-2/predia=-2/vmax_b_frames=1/mbd=2/qpel/mv0/v4mv/trell/cbp

* vmax_b_frames=1 was usually positive. Using vmax_b_frames=0 on the
   line above is a loss, mostly on chrominance.
* mv0 is always a win
* v4mv is always a win
* qprd is usually a win
* cbp is almost always a win, but variance is small either way
* *cmp=2 is almost always the best choice
* *dia=-2 is nearly always a win over *dia=1
* vlelim & vcelim are both always a loss

4) Result with v4mv & mv0

Only looking at the 3 * 192 results with mv0 and v4mv:

* qprd is slighlty better-looking
* vmax_b_frames is mostly a loss

5) Result for vmax_b_frames

* if vmax_b_frames=0, qprd is mostly a win at all bitrates
* if vmax_b_frames=1, qprd is usually bad, but it is less clear-cut
   at 650 than for the other 2 bitrates

* mv0 and v4mv give a bigger PSNR boost when vmax_b_frames=0 than
   when vmax_b_frames=1 at all bitrates

* *dia=1 is slightly less below *dia=-2  with vmax_b_frames=0 than
   with vmax_b_frames=1

6) Result with v4mv & mv0 for vmax_b_frames

Only looking at the 3 * 192 results with mv0 and v4mv:

* if vmax_b_frames=0, qprd is a win as bitrate goes up
* if vmax_b_frames=1, qprd is a loss as bitrate goes up

* *dia=-2 is still better, but the variance is smaller

7) Conclusion

a - don't use vlelim & vcelim, at least on that kind of scene at
     that kind of bitrate

b - mv0 and v4mv are good

c - unlike "CT,HD", cbp is usually a win here

d - qprd & B-frames are open for discussion. Despite qprd looking
     better than B-frames on average, the winning combination at
     various bitrate doesn't involve qprd and 2 times out of 3
     uses B-frames - the third doesn't loose much using them.

I'm gladly taking all advices and suggestions on other tests...

-- 
Romain Dolbeau
-------------- next part --------------
A non-text attachment was scrubbed...
Name: matrix.500.txt.bz2
Type: application/x-bzip2
Size: 4135 bytes
Desc: not available
URL: <http://lists.mplayerhq.hu/pipermail/mplayer-dev-eng/attachments/20040615/e7eeb1df/attachment.bin>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: matrix.650.txt.bz2
Type: application/x-bzip2
Size: 3977 bytes
Desc: not available
URL: <http://lists.mplayerhq.hu/pipermail/mplayer-dev-eng/attachments/20040615/e7eeb1df/attachment-0001.bin>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: matrix.800.txt.bz2
Type: application/x-bzip2
Size: 3867 bytes
Desc: not available
URL: <http://lists.mplayerhq.hu/pipermail/mplayer-dev-eng/attachments/20040615/e7eeb1df/attachment-0002.bin>


More information about the MPlayer-dev-eng mailing list