summaryrefslogtreecommitdiffstats
path: root/DOCS
diff options
context:
space:
mode:
authorlorenm <lorenm@b3059339-0415-0410-9bf9-f77b7e298cf2>2006-06-05 05:34:26 +0000
committerlorenm <lorenm@b3059339-0415-0410-9bf9-f77b7e298cf2>2006-06-05 05:34:26 +0000
commitc7032926c95354a514d0c3973382a3c5f8b8ee05 (patch)
tree8d5e3e3f5d046ab9517462898d5657ad5605a107 /DOCS
parent5c8cb3d02201dbbb0ed95ff5b5a2b9296df621b6 (diff)
downloadmpv-c7032926c95354a514d0c3973382a3c5f8b8ee05.tar.bz2
mpv-c7032926c95354a514d0c3973382a3c5f8b8ee05.tar.xz
document the recent changes in Snow.
new lavcopts: 'refs', 'vqscale=0' git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@18570 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'DOCS')
-rw-r--r--DOCS/man/en/mplayer.15
-rw-r--r--DOCS/tech/snow.txt48
2 files changed, 36 insertions, 17 deletions
diff --git a/DOCS/man/en/mplayer.1 b/DOCS/man/en/mplayer.1
index 6e5f6069fa..ceff91994a 100644
--- a/DOCS/man/en/mplayer.1
+++ b/DOCS/man/en/mplayer.1
@@ -7925,6 +7925,11 @@ subpel refinement quality (for qpel) (default: 8 (high quality))
This has a significant effect on speed.
.
.TP
+.B refs=<1\-8>
+number of reference frames to consider for motion compensation
+(Snow only) (default: 1)
+.
+.TP
.B psnr\ \ \
print the PSNR (peak signal to noise ratio) for the whole video after encoding
and store the per frame PSNR in a file with a name like 'psnr_hhmmss.log'.
diff --git a/DOCS/tech/snow.txt b/DOCS/tech/snow.txt
index 83823b5211..bcf41e4e39 100644
--- a/DOCS/tech/snow.txt
+++ b/DOCS/tech/snow.txt
@@ -12,22 +12,18 @@ command line.
OPTIONS RECOGNIZED BY SNOW
- * vqscale=<0.01-255>
- Encoding quality, sane range 1-10, default: 0 (lossless). May be
- fractional.
+ * vqscale=<0.0-255.0>
+ Encoding quality, sane range 1-10. 0 is lossless.
+ May be fractional.
A given quality in snow needs a somewhat lower qscale than the same
quality in MPEG-4.
- Note that 0 may not be specified; if you want lossless encoding, you
- must leave out vqscale.
* vpass=<1-3>
Activates internal two (or more) pass mode.
* vbitrate=<value>
- Specify bitrate of the 2nd pass.
- Don't use it for 1st pass as CBR isn't implemented yet, use vqscale
- instead, and set it to a quantizer near the target average quant
- of the final encode.
+ Specify bitrate of 1pass CBR or 2pass ABR. default: 800 kbit/s.
+ This is not very accurate for short videos.
* lmin, lmax, vqcomp, vratetol, vrc_eq, vrc_override
Generic multipass ratecontrol options, subject to the same suggestions
@@ -36,15 +32,24 @@ OPTIONS RECOGNIZED BY SNOW
* cmp, subcmp, mbcmp
Set the comparison function, default: 0 (SAD).
- useful values = 0 (SAD), 1 (SSD), 11 (5/3 wavelet), 12 (9/7 wavelet).
- Experience shows that SSD is the best most of the time, while SAD is
- slightly better the remainder of the time.
+ useful values = 0 (SAD), 1 (SSD), 2 (SATD),
+ 11 (5/3 wavelet), 12 (9/7 wavelet).
+ SAD is fastest and lowest quality.
+ SSD is the only function that makes correct decisions about intra vs
+ inter (mbcmp) when using fast motion estimation, but is not the best for
+ the actual search (cmp, subcmp).
+ The wavelet functions (use the one that matches pred) are best quality,
+ especially whith vme=8, but are very slow.
+ SATD is a good balance.
You can add 256 to any of the options to enable chroma motion
estimation for that comparison (e.g. mbcmp=257 for SSD with chroma),
but it doesn't seem to help much for the moment.
* pred=<0-2>
- Wavelet type. 0 (9/7 wavelet), 1 (5/3 wavelet), 2 (13/7 wavelet).
+ Wavelet type.
+ 0 = 9/7 wavelet, default.
+ 1 = 5/3 wavelet.
+ 2 = 13/7 wavelet.
9/7 is probably better for for lossy coding, and 5/3 for lossless.
NOTE: 9/7 wavelet doesn't work with lossless mode.
@@ -55,6 +60,7 @@ OPTIONS RECOGNIZED BY SNOW
* v4mv
Allows smaller motion partitions, default: off.
+ v4mv is theoretically good, but in practice isn't really working yet.
The current MB decision algorithm doesn't make very good use of this:
It improves quality, but also increases bitrate. (You could get
more quality per bitrate by reducing quantizer instead.)
@@ -67,10 +73,18 @@ OPTIONS RECOGNIZED BY SNOW
Iterative ME currently does not perform scenecut detection, so should
be used only in the second pass of a two pass encode.
-v4mv and the wavelet cmp functions are theoretically good, but in practice
-aren't really working yet.
+ * refs=<1-8>
+ Allows each block to choose which of several reference frames to
+ motion compensate from. Defult: 1. Larger values always improve
+ compression, but cost lots of CPU-time when encoding and extra
+ memory when decoding.
In short:
The best options in almost all cases are
-vcodec=snow:vstrict=-2:vpass=1:vqscale=$N:pred=0:cmp=1:subcmp=1:mbcmp=1:qpel
-vcodec=snow:vstrict=-2:vpass=2:vbitrate=$B:pred=0:cmp=1:subcmp=1:mbcmp=1:qpel:vme=8
+vcodec=snow:vstrict=-2:vpass=1:vbitrate=$B:pred=0:cmp=2:subcmp=2:mbcmp=1:qpel
+vcodec=snow:vstrict=-2:vpass=2:vbitrate=$B:pred=0:cmp=12:subcmp=12:mbcmp=1:qpel:vme=8:refs=8
+
+Decent, fast options are
+vcodec=snow:vstrict=-2:vpass=1:vbitrate=$B:pred=0:cmp=1:subcmp=1:mbcmp=1
+vcodec=snow:vstrict=-2:vpass=2:vbitrate=$B:pred=0:cmp=2:subcmp=2:mbcmp=1:refs=2
+