Mercurial > mplayer.hg
annotate DOCS/tech/snow.txt @ 34264:8ddad79e3c91
configure: add HAVE_OS2THREADS to config.h for libavformat
author | diego |
---|---|
date | Wed, 16 Nov 2011 11:14:23 +0000 |
parents | 32725ca88fed |
children |
rev | line source |
---|---|
15117 | 1 HOW TO TEST SNOW |
2 ---------------- | |
3 | |
4 Snow is an experimental wavelet-based codec made by the FFmpeg developers, | |
5 and while it is still in heavy development, it is already giving very good | |
6 results. | |
7 Be very careful though, as the format of the bitstream produced might | |
8 change, do not rely on it to store videos that you value. | |
15386 | 9 For this reason, MEncoder will not encode without 'vstrict=-2' on the |
15117 | 10 command line. |
11 | |
12 | |
15122 | 13 OPTIONS RECOGNIZED BY SNOW |
15117 | 14 |
18569 | 15 * vqscale=<0.0-255.0> |
16 Encoding quality, sane range 1-10. 0 is lossless. | |
17 May be fractional. | |
15117 | 18 A given quality in snow needs a somewhat lower qscale than the same |
19 quality in MPEG-4. | |
20 | |
15206
7c4b86745b98
Snow supports 3-pass mode and 9/7 wavelet doesn't work lossless mode.
gpoirier
parents:
15197
diff
changeset
|
21 * vpass=<1-3> |
7c4b86745b98
Snow supports 3-pass mode and 9/7 wavelet doesn't work lossless mode.
gpoirier
parents:
15197
diff
changeset
|
22 Activates internal two (or more) pass mode. |
15189 | 23 |
24 * vbitrate=<value> | |
18569 | 25 Specify bitrate of 1pass CBR or 2pass ABR. default: 800 kbit/s. |
26 This is not very accurate for short videos. | |
15189 | 27 |
15239
3e1bdfd60e60
mention vrc_eq, vrc_override. remove duplicate warning about 9/7 in lossless.
lorenm
parents:
15214
diff
changeset
|
28 * lmin, lmax, vqcomp, vratetol, vrc_eq, vrc_override |
15214
47027be213b2
mention the generic ratecontrol options (lmin,lmax,vqcomp,vratetol)
lorenm
parents:
15206
diff
changeset
|
29 Generic multipass ratecontrol options, subject to the same suggestions |
47027be213b2
mention the generic ratecontrol options (lmin,lmax,vqcomp,vratetol)
lorenm
parents:
15206
diff
changeset
|
30 as in other codecs. |
47027be213b2
mention the generic ratecontrol options (lmin,lmax,vqcomp,vratetol)
lorenm
parents:
15206
diff
changeset
|
31 lmin=1 can be useful for medium to high bitrates (see vqscale). |
47027be213b2
mention the generic ratecontrol options (lmin,lmax,vqcomp,vratetol)
lorenm
parents:
15206
diff
changeset
|
32 |
15117 | 33 * cmp, subcmp, mbcmp |
34 Set the comparison function, default: 0 (SAD). | |
29263
0f1b5b68af32
whitespace cosmetics: Remove all trailing whitespace.
diego
parents:
18571
diff
changeset
|
35 useful values = 0 (SAD), 1 (SSD), 2 (SATD), |
18569 | 36 11 (5/3 wavelet), 12 (9/7 wavelet). |
37 SAD is fastest and lowest quality. | |
38 SSD is the only function that makes correct decisions about intra vs | |
39 inter (mbcmp) when using fast motion estimation, but is not the best for | |
40 the actual search (cmp, subcmp). | |
41 The wavelet functions (use the one that matches pred) are best quality, | |
18571 | 42 especially with vme=8, but are very slow. |
18569 | 43 SATD is a good balance. |
15117 | 44 You can add 256 to any of the options to enable chroma motion |
45 estimation for that comparison (e.g. mbcmp=257 for SSD with chroma), | |
46 but it doesn't seem to help much for the moment. | |
47 | |
48 * pred=<0-2> | |
18569 | 49 Wavelet type. |
50 0 = 9/7 wavelet, default. | |
51 1 = 5/3 wavelet. | |
52 2 = 13/7 wavelet. | |
15117 | 53 9/7 is probably better for for lossy coding, and 5/3 for lossless. |
15206
7c4b86745b98
Snow supports 3-pass mode and 9/7 wavelet doesn't work lossless mode.
gpoirier
parents:
15197
diff
changeset
|
54 NOTE: 9/7 wavelet doesn't work with lossless mode. |
15117 | 55 |
56 * qpel | |
57 Refines motion estimation, default: off. | |
58 This setting always helps compressibility, but costs some CPU time | |
59 both while encoding and decoding. | |
60 | |
61 * v4mv | |
62 Allows smaller motion partitions, default: off. | |
18569 | 63 v4mv is theoretically good, but in practice isn't really working yet. |
15117 | 64 The current MB decision algorithm doesn't make very good use of this: |
15122 | 65 It improves quality, but also increases bitrate. (You could get |
15117 | 66 more quality per bitrate by reducing quantizer instead.) |
67 | |
17729 | 68 * vme=<4|8> |
69 The default EPZS (4) is the same as in other formats. | |
70 Snow also supports iterative motion estimation (8), which jointly | |
71 optimizes adjacent blocks to make the most of OBMC. This significantly | |
72 improves compression, but is very slow. | |
73 Iterative ME currently does not perform scenecut detection, so should | |
74 be used only in the second pass of a two pass encode. | |
15117 | 75 |
18569 | 76 * refs=<1-8> |
77 Allows each block to choose which of several reference frames to | |
18571 | 78 motion compensate from. Default: 1. Larger values always improve |
18569 | 79 compression, but cost lots of CPU-time when encoding and extra |
80 memory when decoding. | |
15117 | 81 |
82 In short: | |
83 The best options in almost all cases are | |
18569 | 84 vcodec=snow:vstrict=-2:vpass=1:vbitrate=$B:pred=0:cmp=2:subcmp=2:mbcmp=1:qpel |
85 vcodec=snow:vstrict=-2:vpass=2:vbitrate=$B:pred=0:cmp=12:subcmp=12:mbcmp=1:qpel:vme=8:refs=8 | |
86 | |
87 Decent, fast options are | |
88 vcodec=snow:vstrict=-2:vpass=1:vbitrate=$B:pred=0:cmp=1:subcmp=1:mbcmp=1 | |
89 vcodec=snow:vstrict=-2:vpass=2:vbitrate=$B:pred=0:cmp=2:subcmp=2:mbcmp=1:refs=2 |