From 4c43c30421b1d713b7a17b437e381fe1efd01902 Mon Sep 17 00:00:00 2001 From: Bin Jin Date: Mon, 26 Oct 2015 22:43:48 +0000 Subject: vo_opengl: add Super-xBR filter for upscaling Add the Super-xBR filter for image doubling, and the prescaling framework to support it. The shader code was ported from MPDN extensions project, with modification to process luma only. This commit is largely inspired by code from #2266, with `gl_transform_trans()` authored by @haasn taken directly. --- DOCS/man/vo.rst | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) (limited to 'DOCS/man/vo.rst') diff --git a/DOCS/man/vo.rst b/DOCS/man/vo.rst index b2a6cd7045..36ca35d51f 100644 --- a/DOCS/man/vo.rst +++ b/DOCS/man/vo.rst @@ -549,6 +549,44 @@ Available video output drivers are: feature doesn't work correctly with different scale factors in different directions. + ``prescale=`` + This option provides non-convolution-based filters for upscaling. These + filters resize the video to multiple of the original size (all currently + supported prescalers can only perform image doubling in a single pass). + Generally another convolution based filter (the main scaler) will be + applied after prescaler to match the target display size. + + ``none`` + Disable all prescalers. This is the default. + + ``superxbr`` + A relatively fast prescaler originally developed for pixel art. + + Some parameters can be tuned with ``superxbr-sharpness`` and + ``superxbr-edge-strength`` options. + + Note that all the filters above are designed (or implemented) to process + luma plane only and probably won't work as intended for video in RGB + format. + + ``prescale-passes=<1..5>`` + The number of passes to apply the prescaler (defaults to be 1). Setting + it to 2 will perform a 4x upscaling. + + ``prescale-downscaling-threshold=<0..32>`` + This option prevents "overkill" use of prescalers, which can be caused + by misconfiguration, or user trying to play a video with much larger + size. With this option, user can specify the maximal allowed downscaling + ratio in both dimension. To satisfy it, the number of passes for + prescaler will be reduced, and if necessary prescaler could also be + disabled. + + The default value is 2.0, and should be able to prevent most seemingly + unreasonable use of prescalers. Most user would probably want to set it + to a smaller value between 1.0 and 1.5 for better performance. + + A value less than 1.0 will disable the check. + ``pre-shaders=``, ``post-shaders=``, ``scale-shader=`` Custom GLSL fragment shaders. -- cgit v1.2.3