View Full Version : libavcodec motion estimation / compare functions - explanations needed
I'd like to get explanations about the many comparison functions (or "compare functions") libavcodec has, and perhaps details about all other motion estimation options and tips on how they should be used with each comparison function type.
I know a bit, like that SAD is fast and SATD is slow but high quality, SSE is close to SATD's quality but faster, etc, but I don't know about the many other functions that were recently added, or much at all about how each generally (in "layman terms") works. The entire list as of now is:
SAD, SSE, SATD, DCT, PSNR, BIT, RD, ZERO, VSAD, VSSE, NSSE, W53, W97, DCTMAX.
I could find no explanation whatsoever for several of the above.
So, before I can fully check out the latest encoding features in ffdshow, I'd like to know how I should be using it :).
Thanks.
Kopernikus
15th July 2005, 13:05
SAD = Sum of absolute Differences
SSE = Sum of squared Errors
SATD = Sum of transformed Differences (a Hadamard Transform similar to the DCT is used. Besause of that it is a good indicator how "difficult" the dct transformed residuals are to compress)
DCT = Probably the sum of DCT transformed errors ( I dont know exactly)
PSNR = Peak Signal to Noise Ratio (basically SSE on a logarithmic scale, fits the human visual system a bit better)
About the rest I dont know.
Doom9
15th July 2005, 13:14
if you have a digital signal with HDCP going into a device but a digital signal without HDCP coming out. Where has the HDCP signal gone?Rule of thumb: if you don't know what a setting does, leave it at its default value. After all, default values are here so that you have something sensible even if you don't bother to configure.
The Wxy are wavelet functions if I'm not mistaken so they only apply to Snow, and you can find the entire list of libavcodec supported options in the mencoder manpage: http://mplayerhq.hu/DOCS/man/en/mplayer.1.html#CODEC%20SPECIFIC%20ENCODING%20OPTIONS%20(MENCODER%20ONLY)
superdump
16th July 2005, 20:35
I agree with Doom9's rule of thumb but:
BIT - Probably something to do with least bits used.
RD - Rate distorsion. It compares the bits used to do something using a particular method to the errors produced when using that method. This is considered the optimal method, when parameters have been tweaked appropriately but it is slow as you have to actually run the methods through to find out the bit costs.
EDIT: If you look at the MPlayer man page there are the full names of each method. After obtaining those, google would probably be your friend. ;)
superdump: Thanks, I had tried Google and couldn't find that page probably because I tried searching for combinations with W53, W97 and DCTMAX, which aren't mentioned on that page yet. That page, however, doesn't explain things throughly. There was a certain ffmpeg discussion page on sourceforge with tips from libavcodec developers, but I lost the link, and it was old anyway. I'd like some updated tips or comments about what's recommended for what and how things should be used.
There is one tip on that Mplayer page, which is weird since there are no tips for others. "PSNR - sum of squared quantization errors (avoid, low quality)".
So I'd just like tips, and I'm sure many others would too.
Doom9: That quote and rule of thumb are unrelated to my post since I stated that I want to know what things do before I do anything.
vBulletin® v3.8.11, Copyright ©2000-2026, vBulletin Solutions Inc.