[mythtv] Deinterlacer settings
Piotr Oniszczuk
piotr.oniszczuk at gmail.com
Sun Feb 17 10:09:31 UTC 2019
> Wiadomość napisana przez Mark Kendall <mark.kendall at gmail.com> w dniu 16.02.2019, o godz. 11:26:
>
> I'd like to propose a change to how deinterlacers are configured as
> the current setup has become unwieldy to the extent that it is almost
> unmaintainable.
>
> Proposal:
>
> - remove existing specific, named deinterlacer selections for main and fallback.
>
> - replace with something along the lines of:
> - new settings:
> "Deinterlacer quality (normal)": None, Fast, Medium, High, Advanced
> "Prefer GPU deinterlacers": Yes/No
> "Prefer GPU driver deinterlacers": Yes/No
> "Deinterlacer quality (double rate):" None, Fast, Medium, High, Advanced
> "Prefer GPU deinterlacers": Yes/No
> "Prefer GPU driver deinterlacers": Yes/No
>
> I believe that gives the same flexiblity as the current settings
> without tying the code to specific named deinterlacers. Remember these
> are per profile settings.
>
> Selecting 'Prefer GPU deinterlacers' would obviously select shader
> based deints over CPU based and 'GPU driver deinterlacers' would
> prefer VDPAU/VAAPI etc over all others. The code can then make some
> informed decisions on what deinterlacer to use and at what stage in
> the decode to presentation process, as well as falling back where
> needed.
>
> With this setup, under the hood, the deinterlacer selections for Fast,
> Medium, High and Advanced would look something like:
>
> CPU - Onefield, LInear blend, Kernel, Yadif
> OpenGL/D3D - onefield, linear blend, kernel, new motion adaptive shader
> VAAPI - Bob, Weave, Motion adaptive, Motion compensated
> VDPAU - Bob, Temporal, Spatial, ???
> OpenMax - linedouble, fast, advanced, ??
>
> Where onefield and bob are interchangeable as 1x and 2x versions.
>
> Background
>
> We now have a range of deinterlacer options, not just in terms of
> CPU/GPU/driver based but also in terms of at what stage deinterlacing
> occurs.
>
> As an example, with VAAPI decode only (VAAPI2), deinterlacing could
> occur in the decoder using either CPU or VAAPI based deinterlacers or
> at playback using the CPU or GLSL shaders (you could even use VAAPI
> again at this stage). With the new VAAPI zero copy code in the render
> branch, the current setup cannot cope with a VAAPI profile that
> expects to use VAAPI deinterlacer names but OpenGLVideo is actually
> presented with raw video frames that (currently) need to pass through
> the GLSL shaders.
>
> The current code is inflexible - especially with its use of strings to
> explicitly identify each deinterlacer - and has started to break. A
> much simpler and more flexible approach would be to use a simple
> flag/enum that encapsulates the user preferences.
>
> Thoughts welcome!
>
> Regards
> Mark
> _______________________________________________
> mythtv-dev mailing list
> mythtv-dev at mythtv.org
> http://lists.mythtv.org/mailman/listinfo/mythtv-dev
> http://wiki.mythtv.org/Mailing_List_etiquette
> MythTV Forums: https://forum.mythtv.org
Mark,
I want to speak from user perspective.
I really like changes direction You propose.
IMHO any change like „yadiff 2xHW” to „high quality, CPU intensive” is always welcomed as user might be not learned what „yadiff” is - but „high quality CPU intensive” will be quickly understood. This will make app feeling like user friendly.
Also I think it will be somehow good to include trade-off in options name.
I mean something like this:
from
"Deinterlacer quality (normal)": None, Fast, Medium, High, Advanced
to
"Deinterlacer quality (normal)": None, LowQuality, MediumQuality, HighQuality, Custom
and in hint/help text:
"LowQuality offers least CPU/GPU load; MediumQuality offers trade-off between CPU/GPU load and deinterlacing quality; HighQuality offers best deinterlacing quality without any compromise on CPU/GPU load; Custom allows to select where major deinterlace load is allocated: CPU or GPU?"
Also maybe „normal” should be changed to „single rate”?
(as alternate is "double rate”)
And maybe „[single]double rate” to
„1x frame rate” and „2x frame rate”?
br
More information about the mythtv-dev
mailing list