[Mplayer-cvslog] CVS: main/DOCS/tech libavc-rate-control.txt,1.4,1.5

Atmosfear atmos4 at mplayerhq.hu
Sun Jun 2 20:38:04 CEST 2002


Update of /cvsroot/mplayer/main/DOCS/tech
In directory mail:/var/tmp.root/cvs-serv27921/DOCS/tech

Modified Files:
	libavc-rate-control.txt 
Log Message:
Spell checking, line wrapping for better readability, some additions/better explanations.
Michael: are my notes about error-resistance correct? Is two-pass with b-frames still not fixed?


Index: libavc-rate-control.txt
===================================================================
RCS file: /cvsroot/mplayer/main/DOCS/tech/libavc-rate-control.txt,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- libavc-rate-control.txt	2 Jun 2002 12:52:20 -0000	1.4
+++ libavc-rate-control.txt	2 Jun 2002 18:38:01 -0000	1.5
@@ -1,17 +1,24 @@
-Description of what all thouse libavcodec options do ...
-WARNING: iam no encoding expert so the recomanditions might be bad ...
-if u find any errors, missing stuff, ... send a patch or cvs commit if u have an cvs account :)
+Description of what all those libavcodec options do ...
+WARNING: I am no encoding expert so the recommendations might be bad ...
+if you find any errors, missing stuff, ... send a patch or cvs commit if you
+have an cvs account :)
 
-vqmin 1-31 (minimum quantizer) for pass1/2
-	1 is not recomanded (much larger file, little quality difference and possible other weird things)
-	2 is recommanded for normal mpeg4/mpeg1video encoding
-	3 is recommanded for h263(p)/msmpeg4 (default)
-	   the reason for 3 instead of 2 is that 2 could lead to overflows (this will be fixed for h263(p)
-	   by chageing the quanizer per MB in the future, but msmpeg4 doesnt support that so it cant be fixed
-	   for that)
+lavcopts: (encoder options)
+---------------------------
 
-vqscale 1-31 quantizer for constant quantizer /constant quality encoding
-	1 is not recomanded (much larger file, little quality difference and possible other weird things)
+vqmin 1-31 (minimum quantizer) for pass1/2
+	1 is not recommended (much larger file, little quality difference and
+           possibly other weird things)
+	2 is recommended for normal mpeg4/mpeg1video encoding
+	3 is recommended for h263(p)/msmpeg4 (default)
+	   the reason for 3 instead of 2 is that 2 could lead to overflows
+           (this will be fixed for h263(p) by changing the quanizer per MB in	    
+           the future, but msmpeg4 doesnt support that so it cant be fixed for
+	   that)
+
+vqscale 1-31 quantizer for constant quantizer / constant quality encoding
+	1 is not recommended (much larger file, little quality difference and
+        possible other weird things)
 	lower means better quality but larger files
 	see vqmin
 
@@ -22,7 +29,7 @@
 vqdiff  1-31 (maximum quantizer difference between I or P frames) for pass1/2
 	3 default
 
-vmax_b_frames 0-4 (maximum number of b frames between non b frames)
+vmax_b_frames 0-4 (maximum number of B frames between non B frames)
 	0 no b frames (default)
 
 vme 0-5 (motion estimation)
@@ -34,104 +41,123 @@
 	5 X1
 
 vhq (high quality mode)
-	encode each MB as in all modes and choose the best (this is slow but better filesize/quality)
+	encode each MB as in all modes and choose the best (this is slow but
+        better filesize/quality)
 	disabled by default
 
 v4mv
 	allow 4 MV per MB (little difference in filesize/quality)
 	disabled by default
-	cannot be used with b frames or in lq mode currently
-	disabled by default
+	cannot be used with B frames (should now work in lq mode)
 
 keyint  0-300 (maximum interval between keyframes)
-	keyframes are needed for seeking as seeking is only possible to a keyframe but keyframes need more space
-	than non keyframes so larger numbers here mean slightly smaller files
+	keyframes are needed for seeking as seeking is only possible to a
+        keyframe but they need more space than non-keyframes so larger numbers here
+        mean slightly smaller files, but less precise seeking
 	0 no keyframes 
-	>300 is not recomanded as the quality might be bad (depends upon decoder & encoder & luck)
+	>300 is not recommended as the quality might be bad (depends upon
+        decoder, encoder and luck)
 
 vb_strategy 0-1 for pass 2
-	0 allways use the max number of b frames (default)
-	1 avoid b frames in high motion scenes (this will cause bitrate missprediction)
+	0 allways use the max number of B frames (default)
+	1 avoid B frames in high motion scenes (this will cause bitrate
+          misprediction)
 
 vpass
 	1 first pass
         2 second pass
+          (only need to specify if two-pass encoding is used)
 
-vbitrate (kbits per sec) for pass1/2
+vbitrate (kbits per second) for pass1/2
 	800 is default
+        (if value is bigger then 16000 it is interpreted as bit not kbit!)
 
 vratetol (filesize tolerance in kbit) for pass1/2
-	this is just approximate, the real difference can be much smaller or larger
-	1000- 100000 is a sane range
+	this is just an approximation, the real difference can be much smaller
+        or larger
+	1000-100000 is a sane range
 	8000 is default
 
-vb_qfactor (1.0-31.0) (BFrame quantizer= PFrame quantizer * vb_qfactor) for pass1/2
+vb_qfactor (1.0-31.0) for pass1/2
+        (B-Frame quantizer = IP-Frame quantizer * vb_qfactor)
 	2.0 is default
-	tip: to do constant quantizer encoding with different quantizers for I/P and B frames
-	     u can use vqmin=<ip-quant>:vqmax=<ip-quant>:vb_qfactor=<b_quant/ip_quant>
+	tip: to do constant quantizer encoding with different quantizers for
+             I/P and B frames you can use:
+             vqmin=<ip_quant>:vqmax=<ip_quant>:vb_qfactor=<b_quant/ip_quant>
 
-vqblur (0.0-1.0) quantizer blur (for pass1)
+vqblur (0.0-1.0) quantizer blur (only for pass1)
 	0.0 qblur disabled
 	0.5 is the default
 	1.0 average the quantizer over all previous frames
-	larger values will average the quantizer over time more so that the quantizer will be changed slower
+	larger values will average the quantizer more over time so that it will
+        be changed slower
 
 vqcomp (0.0-1.0) quantizer compression (for pass1/2)
-	0.0 constant bitrate encoding, so fast moton frames will get as many bits as low motion
-	    (high motion scenes look bad)
+	0.0 constant bitrate encoding, so fast motion frames will get as many
+            bits as low motion (high motion scenes look bad)
 	0.5 (default)
 	1.0 constant quantizer encoding (low motion scenes look bad)
 
 vrc_strategy (0,1,2)
-	FIXME
+	FIXME (different rate control strategies)
 
 vlelim (0-1000) single coefficient elimination threshold for luminance
 	0 disabled (default)
-	4 (JVT recomandition)
+	4 (JVT recommendation)
 
 vcelim (0-1000) single coefficient elimination threshold for chrominance
 	0 disabled (default)
-	7 (JVT recomandition)
+	7 (JVT recommendation)
 
-vstrict strict standart compliance
-	only recomanded if u want to feed the output into the mpeg4 reference decoder
+vstrict strict standard compliance
+	only recommended if you want to feed the output into the mpeg4 reference
+        decoder
 
 vdpart	data partitioning
-	+2 byte per video packet
-	improves resistance against damages after encoding
+	adds 2 byte per video packet
+	improves error-resistance when transfering over unreliable channels (eg.
+        streaming over the internet) -- CHECKME (atmos)
 
 vpsize	(0-10000) video packet size
 	0 disabled (default)
 	500-1000 good choice
-	improves resistance against damages after encoding
+	improves error-resistance (see vdpart for more info)
 
 lavdopts: (decoder options)
+---------------------------
+
 ver	error resilience
-	-1 needed for some very broken, encoders which completly ignore the standarts
+	-1 needed for some very broken, encoders which completly ignore the
+           standards -- FIXME: which are these? (atmos)
 	0 (default)
-	1 more aggressive error detection, lavc might think that some correct streams contain errors
+	1 more aggressive error detection, lavc might think that some correct
+          streams contain errors
 
 vbug	manual workaround encoder bugs
 	0 (default)
 	1 (workaround for some old lavc generated msmpeg4v3 files)
 
 
-Notes:	1. lavc will strictly follows the quantizer limits vqmin, vqmax, vqdiff even if 
-	   it violates the bitrate / bitrate tolerance
+Notes:	1. lavc will strictly follow the quantizer limits vqmin, vqmax, vqdiff
+           even if it violates the bitrate / bitrate tolerance
 	2. changing some options between pass1 & 2 can reduce the quality
 
-FAQ:	Q: the file is much too small
-	A: vqmin=2 or 1 (be carefull with 1, it could cause strange things to happen)
-	Q: i want to use -pass 1 & -pass 2 with vmax_b_frames>0
-	A: read DOCS/tech/patches.txt and send a patch ;)
-	Q: which provides better error recovery per filesize increase data partitioning or video packets?
-	A: data partitioning
+FAQ:	Q: Why is the filesize much too small?
+	A: Try to increase vqmin=2 or 1 (be carefull with 1, it could cause
+           strange things to happen).
+	Q: Can I use -pass 1 & -pass 2 with vmax_b_frames>0 ?
+	A: Read DOCS/tech/patches.txt and send a patch ;) (XXX still not fixed?)
+	Q: What provides better error recovery while keeping the filesize low?
+           Should I increase data partitioning or the number of video packets?
+	A: Data partitioning is better in this case.
 
-glossary:
-MB	Macroblock (16x16 luminance & 8x8 chrominance samples)
+Glossary:
+MB	Macroblock (16x16 luminance and 8x8 chrominance samples)
 MV	Motion vector
 ME	Motion estimation
 MC	Motion compensation
+JVT	Joint Video Team Standard -- http://www.itu.int/ITU-T/news/jvtpro.html
 
-example:
+Examples:
 mencoder foobar.avi -lavcopts vcodec=mpeg4:vhq:keyint=300:vqscale=2 -o new-foobar.avi
+mplayer  foobar.avi -lavdopts vbug=1




More information about the MPlayer-cvslog mailing list