Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/garamond13/Jinc
Mpv's user shader for jinc based image scaling.
https://github.com/garamond13/Jinc
Last synced: 3 months ago
JSON representation
Mpv's user shader for jinc based image scaling.
- Host: GitHub
- URL: https://github.com/garamond13/Jinc
- Owner: garamond13
- License: mit
- Created: 2023-05-02T10:28:50.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2023-07-21T11:25:50.000Z (over 1 year ago)
- Last Synced: 2024-06-30T14:50:01.078Z (5 months ago)
- Language: GLSL
- Size: 78.1 KB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-mpv - Jinc - Jinc based image scaling. Similar to mpv's ewa or polar. (Other)
README
# Jinc
Mpv's image scaling user shader bsed on jinc, similar to mpv's built in ewa or polar scaler.`Chroma` folder contains shaders for upscaling chroma only \
`Luma` folder contains shaders for upscaling and downscaling luma only`jincUpscale` is optimised for and only does upscaling\
`jincUpscaleUnsharp` is optimised for and only does upscaling, also provides unsharp mask\
`jincUpscaleHDR` is optimised for and only does upscaling; HDR version\
`jincUpscaleUnsharpHDR` is optimised for and only does upscaling, also provides unsharp mask; HDR version\
`jincDownscale` is optimised for and only does downscaling\
`jincDownscaleUnsharp` is optimised for and only does downscaling, also provides unsharp mask\
`jincDownscaleGaussian` is optimised for and only does downscaling, also provides gaussian blur\
`jincDownscaleGaussianUnsharp` is optimised for and only does downscaling, also provides gaussian blur and unsharp mask## Usage
- If you place this shader in the same folder as your `mpv.conf`, you can use it with `glsl-shaders-append="~~/FILE_NAME"`. For an example `glsl-shaders-append="~~/jincUpscale.glsl"`.
- Requires `vo=gpu-next`.
- Note that defualt settings are "simbolic" only, should change them to your liking.
- Note that all downscale shaders can be used for both SDR and HDR content.
- Note that HDR versions are just gamma light so you can use them for SDR## Settings
For better understanding of these settings see research https://github.com/garamond13/Finding-the-best-methods-for-image-scaling
#### Kernel function (K)
Which kernel function to use for calculation of kernel weights. See "KERNEL functions LIST" inside the shader for available kernel functions.#### Kernel radius (R)
Kernel radius determines the kernel size, which is `ceil(2 * kernel radius)^2` when upsampling (upscale) or `ceil(2 * kernel radius * downscale ratio * antialiasing amount)^2` when downsampling (downscale).#### Kernel blur (B)
Effectively values smaller than 1 sharpen the kernel and values larger than 1 blur the kernel, 1 is neutral or no effect. Only affects widowed sinc kernels.#### Antiringing (AR) (Only for upscale)
Reduces ringing artifacts.#### Antialiasing (AA) (Only for downscale)
Effectively trades between aliasing and ringing artifacts. The default value is 1.0.#### Kernel functions parameters (P1) and (P2)
Some kernel functions take additional parameters, they are set here. \
See references for: \
COSINE (power of cosine) - https://en.wikipedia.org/wiki/Window_function#Power-of-sine/cosine_windows \
GARAMOND (power of garamond) - https://github.com/garamond13/power-of-garamond-window \
BLACKMAN (power of blackman) - https://github.com/garamond13/power-of-blackman \
GNW (generalized normal window) - https://ieeexplore.ieee.org/document/6638833 \
SAID - https://www.hpl.hp.com/techreports/2007/HPL-2007-179.pdf \
FSR (modified fsr kernel, based on https://github.com/GPUOpen-Effects/FidelityFX-FSR) - for referernce see the research above \
BCSPLINE - https://www.cs.utexas.edu/~fussell/courses/cs384g-fall2013/lectures/mitchell/Mitchell.pdf#### Sigmoidal curve settings (C) and (M) (Only for upscale and not part of HDR versions)
Contrast `C` is equivalent to mpv's `--sigmoid-slope` and midpoint `M` is equivalent to mpv's `--sigmoid-center`.### Gaussian blur and unsharp mask (Only for gaussian and unsharp versions)
- Unsharp mask works like this: `sharpened = original + (original − blurred) * amount`.
- Blur kernel radius is independent from scaling kernel radius.
- For shaders with both unsharp mask and gaussian blur all settings are independent.#### Blur spread or amount (S)
Gaussian blur sigma value, controls the blur intensity and how much it will be spread accros the blur kernel.#### Blur kernel radius (R)
Determines how many neighboring pixels will contribute to the blurred value of the center pixel inside the blur kernel.#### Sharpening amount (A) (Only for unsharp versions)
Sharpening amount or strenght.