annotate DOCS/tech/snow.txt @ 15258:c2979462805a

fixed wrong function pointers definitions
author nicodvb
date Mon, 25 Apr 2005 06:46:30 +0000
parents 3e1bdfd60e60
children 3eb54388bdc5
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
15117
81ab69124505 Initial commit.
gpoirier
parents:
diff changeset
1 HOW TO TEST SNOW
81ab69124505 Initial commit.
gpoirier
parents:
diff changeset
2 ----------------
81ab69124505 Initial commit.
gpoirier
parents:
diff changeset
3
81ab69124505 Initial commit.
gpoirier
parents:
diff changeset
4 Snow is an experimental wavelet-based codec made by the FFmpeg developers,
81ab69124505 Initial commit.
gpoirier
parents:
diff changeset
5 and while it is still in heavy development, it is already giving very good
81ab69124505 Initial commit.
gpoirier
parents:
diff changeset
6 results.
81ab69124505 Initial commit.
gpoirier
parents:
diff changeset
7 Be very careful though, as the format of the bitstream produced might
81ab69124505 Initial commit.
gpoirier
parents:
diff changeset
8 change, do not rely on it to store videos that you value.
81ab69124505 Initial commit.
gpoirier
parents:
diff changeset
9 For this reason, MEncoder will not encode without 'vstrict=-1' on the
81ab69124505 Initial commit.
gpoirier
parents:
diff changeset
10 command line.
81ab69124505 Initial commit.
gpoirier
parents:
diff changeset
11
81ab69124505 Initial commit.
gpoirier
parents:
diff changeset
12
15122
4d25185dedaa Fixes suggested by The Wanderer.
gpoirier
parents: 15117
diff changeset
13 OPTIONS RECOGNIZED BY SNOW
15117
81ab69124505 Initial commit.
gpoirier
parents:
diff changeset
14
81ab69124505 Initial commit.
gpoirier
parents:
diff changeset
15 * vqscale=<0.01-255>
15122
4d25185dedaa Fixes suggested by The Wanderer.
gpoirier
parents: 15117
diff changeset
16 Encoding quality, sane range 1-10, default: 0 (lossless). May be
4d25185dedaa Fixes suggested by The Wanderer.
gpoirier
parents: 15117
diff changeset
17 fractional.
15117
81ab69124505 Initial commit.
gpoirier
parents:
diff changeset
18 A given quality in snow needs a somewhat lower qscale than the same
81ab69124505 Initial commit.
gpoirier
parents:
diff changeset
19 quality in MPEG-4.
81ab69124505 Initial commit.
gpoirier
parents:
diff changeset
20 Note that 0 may not be specified; if you want lossless encoding, you
15122
4d25185dedaa Fixes suggested by The Wanderer.
gpoirier
parents: 15117
diff changeset
21 must leave out vqscale.
15117
81ab69124505 Initial commit.
gpoirier
parents:
diff changeset
22
15206
7c4b86745b98 Snow supports 3-pass mode and 9/7 wavelet doesn't work lossless mode.
gpoirier
parents: 15197
diff changeset
23 * vpass=<1-3>
7c4b86745b98 Snow supports 3-pass mode and 9/7 wavelet doesn't work lossless mode.
gpoirier
parents: 15197
diff changeset
24 Activates internal two (or more) pass mode.
15189
e743f75cdcc4 Snow 1.55 (and up) allows 2pass ratecontrol.
gpoirier
parents: 15122
diff changeset
25
e743f75cdcc4 Snow 1.55 (and up) allows 2pass ratecontrol.
gpoirier
parents: 15122
diff changeset
26 * vbitrate=<value>
e743f75cdcc4 Snow 1.55 (and up) allows 2pass ratecontrol.
gpoirier
parents: 15122
diff changeset
27 Specify bitrate of the 2nd pass.
e743f75cdcc4 Snow 1.55 (and up) allows 2pass ratecontrol.
gpoirier
parents: 15122
diff changeset
28 Don't use it for 1st pass as CBR isn't implemented yet, use vqscale
15197
dc9ba8f8636e Fix suggested by Diego
gpoirier
parents: 15189
diff changeset
29 instead, and set it to a quantizer near the target average quant
15189
e743f75cdcc4 Snow 1.55 (and up) allows 2pass ratecontrol.
gpoirier
parents: 15122
diff changeset
30 of the final encode.
e743f75cdcc4 Snow 1.55 (and up) allows 2pass ratecontrol.
gpoirier
parents: 15122
diff changeset
31
15239
3e1bdfd60e60 mention vrc_eq, vrc_override. remove duplicate warning about 9/7 in lossless.
lorenm
parents: 15214
diff changeset
32 * lmin, lmax, vqcomp, vratetol, vrc_eq, vrc_override
15214
47027be213b2 mention the generic ratecontrol options (lmin,lmax,vqcomp,vratetol)
lorenm
parents: 15206
diff changeset
33 Generic multipass ratecontrol options, subject to the same suggestions
47027be213b2 mention the generic ratecontrol options (lmin,lmax,vqcomp,vratetol)
lorenm
parents: 15206
diff changeset
34 as in other codecs.
47027be213b2 mention the generic ratecontrol options (lmin,lmax,vqcomp,vratetol)
lorenm
parents: 15206
diff changeset
35 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
36
15117
81ab69124505 Initial commit.
gpoirier
parents:
diff changeset
37 * cmp, subcmp, mbcmp
81ab69124505 Initial commit.
gpoirier
parents:
diff changeset
38 Set the comparison function, default: 0 (SAD).
81ab69124505 Initial commit.
gpoirier
parents:
diff changeset
39 useful values = 0 (SAD), 1 (SSD), 11 (5/3 wavelet), 12 (9/7 wavelet).
81ab69124505 Initial commit.
gpoirier
parents:
diff changeset
40 Experience shows that SSD is the best most of the time, while SAD is
81ab69124505 Initial commit.
gpoirier
parents:
diff changeset
41 slightly better the remainder of the time.
81ab69124505 Initial commit.
gpoirier
parents:
diff changeset
42 You can add 256 to any of the options to enable chroma motion
81ab69124505 Initial commit.
gpoirier
parents:
diff changeset
43 estimation for that comparison (e.g. mbcmp=257 for SSD with chroma),
81ab69124505 Initial commit.
gpoirier
parents:
diff changeset
44 but it doesn't seem to help much for the moment.
81ab69124505 Initial commit.
gpoirier
parents:
diff changeset
45
81ab69124505 Initial commit.
gpoirier
parents:
diff changeset
46 * pred=<0-2>
81ab69124505 Initial commit.
gpoirier
parents:
diff changeset
47 Wavelet type. 0 (9/7 wavelet), 1 (5/3 wavelet), 2 (13/7 wavelet).
81ab69124505 Initial commit.
gpoirier
parents:
diff changeset
48 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
49 NOTE: 9/7 wavelet doesn't work with lossless mode.
15117
81ab69124505 Initial commit.
gpoirier
parents:
diff changeset
50
81ab69124505 Initial commit.
gpoirier
parents:
diff changeset
51 * last_pred=<0-3>
81ab69124505 Initial commit.
gpoirier
parents:
diff changeset
52 Tries a few extra predicted motion vectors before doing EPZS search,
15122
4d25185dedaa Fixes suggested by The Wanderer.
gpoirier
parents: 15117
diff changeset
53 default: 0.
15117
81ab69124505 Initial commit.
gpoirier
parents:
diff changeset
54 This option has negligible effect on both speed and quality of snow,
15239
3e1bdfd60e60 mention vrc_eq, vrc_override. remove duplicate warning about 9/7 in lossless.
lorenm
parents: 15214
diff changeset
55 so just leave it off.
15117
81ab69124505 Initial commit.
gpoirier
parents:
diff changeset
56
81ab69124505 Initial commit.
gpoirier
parents:
diff changeset
57 * qpel
81ab69124505 Initial commit.
gpoirier
parents:
diff changeset
58 Refines motion estimation, default: off.
81ab69124505 Initial commit.
gpoirier
parents:
diff changeset
59 This setting always helps compressibility, but costs some CPU time
81ab69124505 Initial commit.
gpoirier
parents:
diff changeset
60 both while encoding and decoding.
81ab69124505 Initial commit.
gpoirier
parents:
diff changeset
61
81ab69124505 Initial commit.
gpoirier
parents:
diff changeset
62 * v4mv
81ab69124505 Initial commit.
gpoirier
parents:
diff changeset
63 Allows smaller motion partitions, default: off.
81ab69124505 Initial commit.
gpoirier
parents:
diff changeset
64 The current MB decision algorithm doesn't make very good use of this:
15122
4d25185dedaa Fixes suggested by The Wanderer.
gpoirier
parents: 15117
diff changeset
65 It improves quality, but also increases bitrate. (You could get
15117
81ab69124505 Initial commit.
gpoirier
parents:
diff changeset
66 more quality per bitrate by reducing quantizer instead.)
81ab69124505 Initial commit.
gpoirier
parents:
diff changeset
67
81ab69124505 Initial commit.
gpoirier
parents:
diff changeset
68
81ab69124505 Initial commit.
gpoirier
parents:
diff changeset
69 v4mv and the wavelet cmp functions are theoretically good, but in practice
81ab69124505 Initial commit.
gpoirier
parents:
diff changeset
70 won't work well until we get OBMC-aware motion estimation.
81ab69124505 Initial commit.
gpoirier
parents:
diff changeset
71
81ab69124505 Initial commit.
gpoirier
parents:
diff changeset
72 In short:
81ab69124505 Initial commit.
gpoirier
parents:
diff changeset
73 The best options in almost all cases are
15197
dc9ba8f8636e Fix suggested by Diego
gpoirier
parents: 15189
diff changeset
74 vcodec=snow:vstrict=-1:vqscale=$N:pred=0:cmp=1:subcmp=1:mbcmp=1:qpel