mpv/DOCS
Bin Jin ca2f193671 vo_gpu: implement error diffusion for dithering
This is a straightforward parallel implementation of error diffusion
algorithms in compute shader. Basically we use single work group with
maximal possible size to process the whole image. After a shift
mapping we are able to process all pixels column by column.

A large ring buffer are allocated in shared memory to speed things up.
However the size of required shared memory depends linearly on the
height of video window (or screen height in fullscreen mode). In case
there is no enough shared memory, it will fallback to `--dither=fruit`.

The maximal allowed work group size is hardcoded as 1024. Ideally we
could query `GL_MAX_COMPUTE_WORK_GROUP_INVOCATIONS`. But for whatever
reason, it seems most high end card from nvidia and amd support only
the minimal required value, so I guess we can stick to it for now.
2019-06-16 11:19:44 +02:00
..
man vo_gpu: implement error diffusion for dithering 2019-06-16 11:19:44 +02:00
client-api-changes.rst Merge commit '559a400ac36e75a8d73ba263fd7fa6736df1c2da' into wm4-commits--merge-edition 2018-12-05 19:19:24 +01:00
compile-windows.md DOCS/compile-windows.md: update for changes to mpv and MSYS2 2017-10-02 01:28:54 +11:00
contribute.md DOCS/contribute.md: fix a typo 2017-11-30 20:36:09 +01:00
edl-mpv.rst demux_edl: add title option to override title of chapters 2018-08-13 19:09:57 +02:00
encoding.rst encode: remove old timestamp handling 2018-05-03 01:08:44 +03:00
interface-changes.rst docs: add mentions of the Vulkan rendering abstraction replacement 2019-04-22 15:58:10 +03:00
mplayer-changes.rst vo_opengl: refactor into vo_gpu 2017-09-21 15:00:55 +02:00
release-policy.md Release 0.25.0 2017-04-23 01:57:53 +02:00
tech-overview.txt video: change some remaining vo_opengl mentions to vo_gpu 2018-01-20 14:43:49 -08:00
waf-buildsystem.rst DOCS/waf-buildsystem.rst: fix typo 2017-02-15 10:41:26 +01:00