filter_kernels: add blur parameter to jinc

This affects all filters that use it, eg. ewa_lanczos. Setting it to
something like 0.95 can be done to make the filter a bit less blurry.
This commit is contained in:
Niklas Haas 2015-02-23 19:06:18 +01:00
parent 8161d621bb
commit 36011c7f6d
No known key found for this signature in database
GPG Key ID: 3BA77D4BFDB10BCE
2 changed files with 10 additions and 4 deletions

View File

@ -340,6 +340,12 @@ Available video output drivers are:
Scale parameter (``t``). Increasing this makes the result blurrier.
Defaults to 1.
``ewa_lanczos``, ``ewa_ginseng``, ``ewa_hanning``
Jinc function scaling factor (also known as a blur factor).
Decreasing this makes the result sharper, increasing it makes it
blurrier. Defaults to 1. Note that setting this too low (eg. 0.5)
leads to bad results. It's recommended to stay between 0.9 and 1.1.
``scale-radius=<r>``
Set radius for filters listed below, must be a float number between 1.0
and 16.0. Defaults to be 3.0 if not specified.

View File

@ -274,7 +274,7 @@ static double jinc(kernel *k, double x)
{
if (fabs(x) < 1e-8)
return 1.0;
double pix = M_PI * x;
double pix = M_PI * x / k->params[0]; // blur factor
return 2.0 * j1(pix) / pix;
}
@ -345,9 +345,9 @@ const struct filter_kernel mp_filter_kernels[] = {
{"spline64", 4, spline64},
{"gaussian", -1, gaussian, .params = {1.0, NAN} },
{"sinc", -1, sinc},
{"ewa_lanczos", -1, ewa_lanczos, .polar = true},
{"ewa_hanning", -1, ewa_hanning, .polar = true},
{"ewa_ginseng", -1, ewa_ginseng, .polar = true},
{"ewa_lanczos", -1, ewa_lanczos, .params = {1.0, NAN}, .polar = true},
{"ewa_hanning", -1, ewa_hanning, .params = {1.0, NAN}, .polar = true},
{"ewa_ginseng", -1, ewa_ginseng, .params = {1.0, NAN}, .polar = true},
{"lanczos", -1, lanczos},
{"blackman", -1, blackman},
{0}