[MPlayer-users] PSNR tests: mbd=2, mv0, trell, and cbp (and other stuff)
Corey Hickey
bugfood-ml at fatooh.org
Thu Oct 9 08:36:37 CEST 2003
WARNING: long mail....
I just tested several different combinations of mbd=2, mv0, trell, and
cbp to see how they affect PSNR. As I mentioned earlier on the
mplayer-cvslog list, I really can't see much of a quality difference
among any of the resulting files; someone else can do a double-blind
test if they want to. However, under these circumstances an increase in
PSNR _ought_ to indicate better encoding accuracy, and, hence quality.
Each of the three different video clips tested is 200 seconds long; all
encodes are two-pass, with the psnr logged for the second pass. Each
video source is cinematic (non-anime) with the black borders
appropriately cropped, and is scaled to maintain aspect ratio.
Each test should be considered as two parts. The first half of each test
has the options alone and with each other. The second half shows how
they behave when combined with the long set of options I usually use.
For clarity, I'll call this set of options "<stuff>":
v4mv:precmp=3:cmp=3:subcmp=3:vmax_b_frames=1:qpel:vlelim=-2:\
vcelim=7:lumi_mask=0.05:naq:vqcomp=0.7:mbcmp=2
I haven't yet written good enough scripts to test all the
options/combinations above.
Also, for those who don't know, mv0 requires mbd=2 (or mbd=1) and cbp
requires trell.
===============================
Test 1: very little grainy-ness, very little motion
-----
By itself, mbd=2 increases PSNR slightly, but not nearly as much as it
does for the other video sources. When combined with <stuff>, mbd=2 does
much better. In all cases mv0 adds to the PSNR slightly. Trell kicked
butt anywhere I put it, and cbp helped substantially. In all cases, the
individual PSNR gains accumulate nicely when options are combined.
-----
Null case:
/usr/bin/mencoder test1.vob -ss 190 -endpos 200 -aid 128 -vf
crop=712:366:4:54,scale=704:304 -sws 1 -ovc lavc -lavcopts \
vcodec=mpeg4:vbitrate=800:vpass=2:psnr -nosound -ofps 23.976 -o _.avi
PSNR: Y:42.00, Cb:46.43, Cr:46.67, All:43.06
mbd=2
PSNR: Y:42.02, Cb:46.48, Cr:46.72, All:43.09
mbd=2:mv0
PSNR: Y:42.05, Cb:46.52, Cr:46.76, All:43.12
trell
PSNR: Y:42.20, Cb:46.40, Cr:46.62, All:43.22
mbd=2:trell
PSNR: Y:42.22, Cb:46.44, Cr:46.65, All:43.25
mbd=2:mv0:trell
PSNR: Y:42.25, Cb:46.49, Cr:46.70, All:43.28
trell:cbp
PSNR: Y:42.34, Cb:46.25, Cr:46.46, All:43.31
mbd=2:trell:cbp
PSNR: Y:42.35, Cb:46.29, Cr:46.49, All:43.33
mbd=2:mv0:trell:cbp
PSNR: Y:42.39, Cb:46.35, Cr:46.55, All:43.37
<stuff>
PSNR: Y:42.85, Cb:46.35, Cr:46.60, All:43.76
<stuff>:mbd=2
PSNR: Y:43.03, Cb:46.57, Cr:46.82, All:43.94
<stuff>:mbd=2:mv0
PSNR: Y:43.06, Cb:46.59, Cr:46.85, All:43.97
<stuff>:trell
PSNR: Y:43.12, Cb:46.46, Cr:46.69, All:44.00
<stuff>:mbd=2:trell
PSNR: Y:43.27, Cb:46.64, Cr:46.87, All:44.15
<stuff>:mbd=2:mv0:trell
PSNR: Y:43.29, Cb:46.67, Cr:46.89, All:44.17
<stuff>:trell:cbp
PSNR: Y:43.27, Cb:46.57, Cr:46.77, All:44.14
<stuff>:mbd=2:trell:cbp
PSNR: Y:43.42, Cb:46.76, Cr:46.95, All:44.29
<stuff>:mbd=2:mv0:trell:cbp
PSNR: Y:43.44, Cb:46.78, Cr:46.98, All:44.32
===================================
Test 2: very little graininess, but lots of rapid, chaotic motion
------
By themselves (and with each other), mbd=2 and trell both help
immensely. With the exception of the last encode (where there was no
change), mv0 continues to provide a slight improvement. cpb, however,
decreases psnr slightly in the first set, but when combined with <stuff>
that decrease is turned into an increase.
------
Null case:
/usr/bin/mencoder test2.vob -ss 205 -endpos 200 -aid 128 -vf \
crop=714:352:2:62,scale=688:288 -sws 1 -ovc lavc -lavcopts \
vcodec=mpeg4:vbitrate=800:vpass=2:psnr -nosound -ofps 23.976 -o _.avi
PSNR: Y:39.13, Cb:43.22, Cr:43.90, All:40.17
mbd=2
PSNR: Y:39.41, Cb:43.54, Cr:44.28, All:40.46
mbd=2:mv0
PSNR: Y:39.42, Cb:43.56, Cr:44.30, All:40.47
trell
PSNR: Y:39.36, Cb:43.24, Cr:43.96, All:40.37
mbd=2:trell
PSNR: Y:39.60, Cb:43.55, Cr:44.33, All:40.62
mbd=2:mv0:trell
PSNR: Y:39.61, Cb:43.57, Cr:44.34, All:40.64
trell:cbp
PSNR: Y:39.36, Cb:43.09, Cr:43.81, All:40.35
mbd=2:trell:cbp
PSNR: Y:39.58, Cb:43.39, Cr:44.18, All:40.58
mbd=2:mv0:trell:cbp
PSNR: Y:39.62, Cb:43.43, Cr:44.22, All:40.62
<stuff>
PSNR: Y:39.76, Cb:43.22, Cr:43.94, All:40.70
<stuff>:mbd=2
PSNR: Y:40.03, Cb:43.60, Cr:44.36, All:40.99
<stuff>:mbd=2:mv0
PSNR: Y:40.04, Cb:43.61, Cr:44.38, All:41.00
<stuff>:trell
PSNR: Y:40.07, Cb:43.31, Cr:44.05, All:40.97
<stuff>:mbd=2:trell
PSNR: Y:40.31, Cb:43.65, Cr:44.43, All:41.23
<stuff>:mbd=2:mv0:trell
PSNR: Y:40.32, Cb:43.65, Cr:44.44, All:41.24
<stuff>:trell:cbp
PSNR: Y:40.10, Cb:43.29, Cr:44.03, All:41.00
<stuff>:mbd=2:trell:cbp
PSNR: Y:40.34, Cb:43.65, Cr:44.42, All:41.26
<stuff>:mbd=2:mv0:trell:cbp
PSNR: Y:40.34, Cb:43.65, Cr:44.43, All:41.26
===================================
Test 3: moderately grainy video, very little motion
------
As in test2, mbd=2 and trell both perform impressively, and combine with
each other well. mv0 adds very very slightly accross the board. In the
first tests, cbp adds slightly to the PSNR, but when combined with
<stuff> there is no gain. One interesting thing to note is that with
this grainy sample, <stuff> decreases PSNR somewhat, which deserves
investigation. Later, though. :)
------
Null case:
/usr/bin/mencoder test3.vob -ss 150 -endpos 200 -aid 128 -vf \
crop=708:358:6:58,scale=672:288 -sws 1 -ovc lavc -lavcopts \
vcodec=mpeg4:vbitrate=800:vpass=1:psnr -nosound -ofps 23.976 \
-o _.avi
PSNR: Y:43.16, Cb:46.49, Cr:47.49, All:44.10
mbd=2
PSNR: Y:43.27, Cb:46.64, Cr:47.70, All:44.22
mbd=2:mv0
PSNR: Y:43.29, Cb:46.66, Cr:47.72, All:44.24
trell
PSNR: Y:43.39, Cb:46.51, Cr:47.52, All:44.29
mbd=2:trell
PSNR: Y:43.49, Cb:46.64, Cr:47.70, All:44.40
mbd=2:mv0:trell
PSNR: Y:43.50, Cb:46.66, Cr:47.72, All:44.42
trell:cbp
PSNR: Y:43.47, Cb:46.36, Cr:47.37, All:44.33
mbd=2:trell:cbp
PSNR: Y:43.56, Cb:46.49, Cr:47.55, All:44.44
mbd=2:mv0:trell:cbp
PSNR: Y:43.57, Cb:46.51, Cr:47.58, All:44.45
<stuff>
PSNR: Y:43.08, Cb:46.08, Cr:47.13, All:43.96
<stuff>:mbd=2
PSNR: Y:43.28, Cb:46.44, Cr:47.59, All:44.20
<stuff>:mbd=2:mv0
PSNR: Y:43.29, Cb:46.45, Cr:47.61, All:44.21
<stuff>:trell
PSNR: Y:43.32, Cb:46.20, Cr:47.24, All:44.19
<stuff>:mbd=2:trell
PSNR: Y:43.49, Cb:46.50, Cr:47.64, All:44.38
<stuff>:mbd=2:mv0:trell
PSNR: Y:43.49, Cb:46.51, Cr:47.66, All:44.39
<stuff>:trell:cbp
PSNR: Y:43.32, Cb:46.18, Cr:47.23, All:44.18
<stuff>:mbd=2:trell:cbp
PSNR: Y:43.49, Cb:46.50, Cr:47.66, All:44.38
<stuff>:mbd=2:mv0:trell:cbp
PSNR: Y:43.49, Cb:46.52, Cr:47.68, All:44.39
=============================
-Corey
More information about the MPlayer-users
mailing list