You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Computes the CAMBI banding score as `CAMBI` frame property. Unlike [VapourSynth-VMAF](https://github.com/HomeOfVapourSynthEvolution/VapourSynth-VMAF), this filter is online (no need to batch process the whole video) and provides raw cambi scores (when `scores == True`).
@@ -14,8 +12,7 @@ Computes the CAMBI banding score as `CAMBI` frame property. Unlike [VapourSynth-
14
12
-`scores` (default: False): if True, for scale i (0 <= i < 5), the GRAYS c-score frame will be stored as frame property `"CAMBI_SCALE%d" % i`.
15
13
-`scaling`: scaling factor used to normalize the c-scores for each scale returned when `scores=True`.
16
14
17
-
DLVFX
18
-
-----
15
+
## DLVFX
19
16
`akarin.DLVFX(clip clip, int op[, float scale=1, float strength=0, int output_depth=clip.format.bits_per_sample, int num_streams=1])`
20
17
21
18
There are three operation modes ([official docs](https://docs.nvidia.com/deeplearning/maxine/pdf/vfx-sdk-programming-guide.pdf)):
@@ -34,9 +31,7 @@ Usage Notes:
34
31
This filter requires appropriate [Video Effects library (v0.6 beta)](https://www.nvidia.com/en-us/geforce/broadcasting/broadcast-sdk/resources/) to be installed. (This library is too large to be bundled with the plugin.)
35
32
This filter also requires RTX-capable NVidia GPU to run.
36
33
37
-
DLISR
38
-
-----
39
-
34
+
## DLISR
40
35
`akarin.DLISR(clip clip, [, int scale=2])`
41
36
42
37
This filter will use Nvidia [NGX Technology](https://developer.nvidia.com/rtx/ngx) DLISR DNN to scale up an input clip.
@@ -49,9 +44,7 @@ This filter requires RTX-capable NVidia GPU to run.
49
44
Warning: <br>
50
45
Due to peculiar nature of its implementation, this filter only works if it is the *only* CUDA filter in your script and it will always automatically choose the GPU to use. Please make sure to use CPU versions of other filters if you plan to use `DLISR` in the script (note that it's fairly computation extensive, so using other GPU filters will likely only slow things down anyway.)
51
46
52
-
Expr
53
-
----
54
-
47
+
## Expr
55
48
`akarin.Expr(clip[] clips, string[] expr[, int format, int opt=0, int boundary=0])`
56
49
57
50
This works just like [`std.Expr`](http://www.vapoursynth.com/doc/functions/expr.html) (esp. with the same SIMD JIT support on x86 hosts), with the following additions:
@@ -85,9 +78,7 @@ This works just like [`std.Expr`](http://www.vapoursynth.com/doc/functions/expr.
85
78
- octals: 023 (however, invalid octal numbers will be parsed as floating points, so "09" will be parsed the same as "9.0")
86
79
- (\*) Support **arbitrary** number of input clips. Use `srcN` to access the `N`-th input clip (i.e. `src0` is equivalent to `x`, `src25` is equivalent to `w`, etc.) There is no hardcoded limit on the number of input clips, however VS might not be able to handle too many. Up to `255` input clips have been tested.
`PropExpr` is a filter to programmatically compute numeric frame properties. Given a list of clips, it will return the first clip after modifying its frame properties as specified by the dict argument. The expressions have access to the frame property of all the clips.
@@ -134,9 +123,7 @@ Some examples:
134
123
Note: this peculiar form of specifying the properties is to workaround a limitation of the VS API.
135
124
136
125
137
-
Text
138
-
----
139
-
126
+
## Text
140
127
Text is an enhanced `text.Text`:
141
128
- It takes Python format string so that the text for each frame can be based on frame properties. No need to resort to `std.FrameEval` and dynamic `text.Text` filter creation. But note this filter by itself does not support any computation on the frame properties, so if you want to display, say, `x.Prop1 * 10 + y.Prop2`, you will have to use `PropExpr` before hand to compute the value (e.g. `c.akarin.PropExpr(lambda: dict(PropToShow="x.Prop1 10 * y.Prop2 +")).akarin.Text("{PropToShow}")`).
142
129
- It also support saving the formated string as a frame property (via `prop` argument), so that you can pass the formatted string to other filters (e.g. assrender).
@@ -162,9 +149,7 @@ The filter supports formatting int/float scalar or arrays, data (shown as string
162
149
`vspipe` will determine whether to overlay the OSD when the script is run under vspipe. The default `False` means the OSD will only be visible when the script is run in previewers, not when encoding with vspipe. The check is done by checking the executable name of the current process for "vspipe" (Unix) or "vspipe.exe" (Windows). This setting does not affect `prop`.
163
150
164
151
165
-
Version
166
-
----
167
-
152
+
## Version
168
153
`akarin.Version()`
169
154
170
155
Use this function to query the version and features of the plugin. It will return a Python dict with the following keys:
@@ -201,21 +186,36 @@ When reporting issues, please also try limiting the ISA to a lower level (at lea
201
186
If the `opt` argument is set to 1 (default 0), then it will activate an integer optimization mode, where intermediate values are computed with 32-bit integer for as long as possible. You have to make sure the intermediate value is always representable with int32 to use this optimization (as arithmetics will warp around in this mode.)
202
187
203
188
204
-
Building
205
-
--------
206
-
To build the plugin, you will need LLVM 19-20 installed (on Windows, you need to build your own) and have llvm-config executable in your PATH, then run:
> When building with LLVM 17 or newer, the plugin will depend on `libzstd.dll`.
215
+
> You may need to manually copy this DLL from your MSYS2 installation (`/clang64/bin/libzstd.dll`) to the plugin directory if it is not already in your PATH.
0 commit comments