diff options
author | Niklas Haas <git@nand.wakku.to> | 2015-02-19 23:13:33 +0100 |
---|---|---|
committer | Niklas Haas <git@nand.wakku.to> | 2015-02-24 21:52:11 +0100 |
commit | 9fa73b6f645952247d3d18e617a357a5d02f644e (patch) | |
tree | 98fba59f2009ba0a357fae1f8232c5d70f942331 /DOCS/man/vo.rst | |
parent | dbc5d7b7db70f898dcd5cbbba76ffed38e5371ee (diff) | |
download | mpv-9fa73b6f645952247d3d18e617a357a5d02f644e.tar.bz2 mpv-9fa73b6f645952247d3d18e617a357a5d02f644e.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.
Diffstat (limited to 'DOCS/man/vo.rst')
-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 1fa23f02cd..e1375a8a71 100644 --- a/DOCS/man/vo.rst +++ b/DOCS/man/vo.rst @@ -611,16 +611,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 @@ -633,6 +644,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. |