diff options
author | Niklas Haas <git@nand.wakku.to> | 2015-02-19 23:13:33 +0100 |
---|---|---|
committer | Diogo Franco (Kovensky) <diogomfranco@gmail.com> | 2015-02-25 11:10:01 +0900 |
commit | 220d28b902418c65ee2af50c6e26414b90846c5b (patch) | |
tree | 9e87b87c9885742096c3392e94a2a3bc3de06f41 | |
parent | ff10bd65d68883d51cad9db5066f5e0baf74be30 (diff) | |
download | mpv-220d28b902418c65ee2af50c6e26414b90846c5b.tar.bz2 mpv-220d28b902418c65ee2af50c6e26414b90846c5b.tar.xz |
manpage: update documentation for smoothmotion
Hopefully, this will really clear up how the thing is supposed to work
(and that it's not SVP, nor MVTools).
I also removed instances of the word "interpolation", since that's a
term that's easily misleading.
Finally, I expanded on smoothmotion-threshold since the purpose/meaning
was a bit confusing.
(cherry picked from commit 9fa73b6f645952247d3d18e617a357a5d02f644e)
-rw-r--r-- | DOCS/man/vo.rst | 35 |
1 files changed, 27 insertions, 8 deletions
diff --git a/DOCS/man/vo.rst b/DOCS/man/vo.rst index 2ccefea891..1b5a1d9552 100644 --- a/DOCS/man/vo.rst +++ b/DOCS/man/vo.rst @@ -590,16 +590,27 @@ Available video output drivers are: See ``--osd-color`` option how colors are defined. ``smoothmotion`` - Use frame interpolation to reduce stuttering caused by mismatches in - video fps and display refresh rate. + Reduce stuttering caused by mismatches in video fps and display + refresh rate (also known as judder). - Instead of drawing each frame exactly once, smoothmotion redraws the - the OpenGL scene at the display refresh rate. If a vsync is detected - to be the one when a frame changes to the next, a linear interpolation - of the previous frame with next is shown instead. + Instead of drawing source frames for variable durations, smoothmotion + will blend frames that overlap the transition between two frames in + the source material. - This means that displaying a 1fps video on a 60hz monitor will blend - at most during 1 vsync for each second of playback. + For example, a 24 Hz clip played back on a 60 Hz display would normally + result in a pattern like this:: + + A A A B B C C C D D E E E F F + + which has different lengths, alternating between 3 and 2. This + difference in frame duration is what causes judder. + + With smoothmotion enabled, the pattern changes to:: + + A A A+B B B C C C+D D D E E E+F F F + + where A+B is a blend of A and B. In this pattern, each frame gets a + (consistent) duration of roughly 2.5 - resulting in smooth motion. GPU drivers or compositing window managers overriding vsync behavior can lead to bad results. If the framerate is close to or over the @@ -612,6 +623,14 @@ Available video output drivers are: Mix threshold at which interpolation is skipped (default: 0.0 – never skip). + For example, with a ``smoothmotion-threshold`` of 0.1, if the + smoothmotion algorithm would try to blend two frames by a ratio of + 95% A + 5% B, it would simply display A instead. (Since the + distance, 0.05, is lower than the threshold) + + Setting this to 0.5 would be similar to disabling smoothmotion + completely, since it would always just display the nearest frame. + ``opengl-hq`` Same as ``opengl``, but with default settings for high quality rendering. |