A CPU-optimized version of nnedi3 for VapourSynth
Project description
Description
znedi3 is a CPU-optimized version of nnedi.
nnedi3 is an intra-field only deinterlacer. It takes a frame, throws away one field, and then interpolates the missing pixels using only information from the remaining field. It is also good for enlarging images by powers of two.
This plugin no longer provides the nnedi3_rpow2 filter. A replacement can be found here: http://forum.doom9.org/showthread.php?t=172652
This is a port of tritical’s nnedi3 filter.
Usage
The file nnedi3_weights.bin is required. It must be in the same directory as nnedi3.
nnedi3.nnedi3(clip clip, int field[, bint dh=False, int[] planes=[0, 1, 2], int nsize=6, int nns=1, int qual=1, int etype=0, int pscrn=2, bint opt=True, bint int16_prescreener=True, bint int16_predictor=True, int exp=0, bint show_mask=False])
- Parameters:
- clip
Clip to process. It must have constant format and dimensions, and integer samples with 8..16 bits or float samples with 32 bits.
- field
Selects the mode of operation. Possible values:
0: Same rate, keep bottom field.
1: Same rate, keep top field.
2: Double rate, start with bottom field.
3: Double rate, start with top field.
If dh is True, the _Field frame property is used to determine each frame’s field dominance. The field parameter is only a fallback for frames that don’t have the _Field property.
If dh is False, the _FieldBased frame property is used to determine each frame’s field dominance. The field parameter is only a fallback for frames that don’t have the _FieldBased property, or where said property indicates that the frame is progressive.
- dh
Doubles the height, keeping both fields. If field is 0, the input is copied to the odd lines of the output (the bottom field). If field is 1, the input is copied to the even lines of the output (the top field).
If dh is True, field must be 0 or 1.
Default: False.
- planes
Planes to process. Planes that are not processed will contain uninitialised memory.
Default: all.
- nsize
Size of the local neighbourhood around each pixel used by the predictor neural network. Possible settings:
0: 8x6
1: 16x6
2: 32x6
3: 48x6
4: 8x4
5: 16x4
6: 32x4
For image enlargement it is recommended to use 0 or 4. A taller neighbourhood will result in sharper output.
For deinterlacing a wider neighbourhood will allow connecting lines of smaller slope. However, the setting to use depends on the amount of aliasing (lost information) in the source. If the source was heavily low-pass filtered before interlacing then aliasing will be low and a wide neighbourhood won’t be needed, and vice-versa.
Default: 6.
- nns
Number of neurons in the predictor neural network. Possible values:
0: 16
1: 32
2: 64
3: 128
4: 256
Higher values are slower, but provide better quality. However, quality differences are usually small. The difference in speed will become larger if qual is increased.
Default: 1.
- qual
The number of different neural network predictions that are blended together to compute the final output value. Each neural network was trained on a different set of training data. Blending the results of these different networks improves generalisation to unseen data. Possible values are 1 and 2.
A value of 2 is recommended for image enlargement.
Default: 1.
- etype
The set of weights used in the predictor neural network. Possible values:
0: Weights trained to minimise absolute error.
1: Weights trained to minimise squared error.
Default: 0.
- pscrn
The prescreener used to decide which pixels should be processed by the predictor neural network, and which can be handled by simple cubic interpolation. Since most pixels can be handled by cubic interpolation, using the prescreener generally results in much faster processing. Possible values:
0: No prescreening. No pixels will be processed with cubic interpolation. This is really slow.
1: Old prescreener.
2: New prescreener level 0.
3: New prescreener level 1.
4: New prescreener level 2.
The new prescreener works faster than the old one, and it also causes more pixels to be processed with cubic interpolation. The higher levels cause a bit more pixels to be processed with the predictor neural network, therefore they are slower than the lowest level.
The new prescreener is not available with float input.
Default: 2 for integer input, 1 for float input.
- opt
If True, the best optimised functions supported by the CPU will be used. If False, only scalar functions will be used.
Default: True.
- int16_prescreener
If True, the prescreener will perform the dot product calculations using 16 bit integers. Otherwise, it will use single precision floats.
This parameter is ignored when the input has float samples.
Default: True.
- int16_predictor
If True, the predictor will perform the dot product calculations using 16 bit integers. Otherwise, it will use single precision floats.
This parameter is ignored when the input has more than 15 bits per sample.
Default: True.
- exp
The exp function approximation to use in the predictor. 0 is the fastest and least accurate. 2 is the slowest and most accurate.
Default: 0.
- show_mask
If True, the pixels that would be processed with the predictor neural network are instead set to white.
Default: False.
Compilation (Linux)
Clone the repository (using the --recursive argument to also dowload the required vsxx library as a submodule):
git clone --recursive https://github.com/sekrit-twc/znedi3
Compile the library:
cd znedi3 make X86=1
To install, copy vsznedi3.so and nnedi3_weights.bin to the vapoursynth plugin folder (usually /usr/lib/x86_64-linux-gnu/vapoursynth/):
sudo cp nnedi3_weights.bin vsznedi3.so /usr/lib/x86_64-linux-gnu/vapoursynth/
There is also a test application which can be built to check the efficiency of the plugin kernels optimized for different SIMD instructions:
make X86=1 testapp/testapp
License
GPLv2.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file vapoursynth_znedi3-3.0.tar.gz.
File metadata
- Download URL: vapoursynth_znedi3-3.0.tar.gz
- Upload date:
- Size: 13.8 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ba02fdd1e3b7ea958f9af6cddec7b3a3b7370b98974f44a2fcccfa440c71d3a6
|
|
| MD5 |
67e0258d56cbce9a36de9f0dacecde60
|
|
| BLAKE2b-256 |
65eda85a386e0c809da8f1a614fe58fa99eaab4ddc6d0df7601ec6a077c84ebd
|
Provenance
The following attestation bundles were made for vapoursynth_znedi3-3.0.tar.gz:
Publisher:
build.yml on vapoursynth/znedi3-pypi
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
vapoursynth_znedi3-3.0.tar.gz -
Subject digest:
ba02fdd1e3b7ea958f9af6cddec7b3a3b7370b98974f44a2fcccfa440c71d3a6 - Sigstore transparency entry: 1391587331
- Sigstore integration time:
-
Permalink:
vapoursynth/znedi3-pypi@f344f913778904f8e27c74013b0a5cba30b23ed7 -
Branch / Tag:
refs/tags/r3 - Owner: https://github.com/vapoursynth
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
build.yml@f344f913778904f8e27c74013b0a5cba30b23ed7 -
Trigger Event:
push
-
Statement type:
File details
Details for the file vapoursynth_znedi3-3.0-py3-none-win_amd64.whl.
File metadata
- Download URL: vapoursynth_znedi3-3.0-py3-none-win_amd64.whl
- Upload date:
- Size: 13.2 MB
- Tags: Python 3, Windows x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
30276b42139f9db705151e67a0138f2df155602033ea08f80caebb8254ebab99
|
|
| MD5 |
e38ca6ba2de2b2fafcf2e5d60abaf07a
|
|
| BLAKE2b-256 |
61a82658830b9eca91938dbeafe87ec7a799e9e1f14079357654951606bb73a7
|
Provenance
The following attestation bundles were made for vapoursynth_znedi3-3.0-py3-none-win_amd64.whl:
Publisher:
build.yml on vapoursynth/znedi3-pypi
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
vapoursynth_znedi3-3.0-py3-none-win_amd64.whl -
Subject digest:
30276b42139f9db705151e67a0138f2df155602033ea08f80caebb8254ebab99 - Sigstore transparency entry: 1391587377
- Sigstore integration time:
-
Permalink:
vapoursynth/znedi3-pypi@f344f913778904f8e27c74013b0a5cba30b23ed7 -
Branch / Tag:
refs/tags/r3 - Owner: https://github.com/vapoursynth
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
build.yml@f344f913778904f8e27c74013b0a5cba30b23ed7 -
Trigger Event:
push
-
Statement type:
File details
Details for the file vapoursynth_znedi3-3.0-py3-none-musllinux_1_2_x86_64.whl.
File metadata
- Download URL: vapoursynth_znedi3-3.0-py3-none-musllinux_1_2_x86_64.whl
- Upload date:
- Size: 13.8 MB
- Tags: Python 3, musllinux: musl 1.2+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
73eb0bc00f72080354bd47d9d2849eff3685f75c196f791d26e204c818a87572
|
|
| MD5 |
bb2f18b86a49cc2e34cea792846f11b6
|
|
| BLAKE2b-256 |
01464b35c8d119c82cd2dcb2c0bf7c01487a93ceb06bfc0291cca5c6604a43da
|
Provenance
The following attestation bundles were made for vapoursynth_znedi3-3.0-py3-none-musllinux_1_2_x86_64.whl:
Publisher:
build.yml on vapoursynth/znedi3-pypi
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
vapoursynth_znedi3-3.0-py3-none-musllinux_1_2_x86_64.whl -
Subject digest:
73eb0bc00f72080354bd47d9d2849eff3685f75c196f791d26e204c818a87572 - Sigstore transparency entry: 1391587343
- Sigstore integration time:
-
Permalink:
vapoursynth/znedi3-pypi@f344f913778904f8e27c74013b0a5cba30b23ed7 -
Branch / Tag:
refs/tags/r3 - Owner: https://github.com/vapoursynth
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
build.yml@f344f913778904f8e27c74013b0a5cba30b23ed7 -
Trigger Event:
push
-
Statement type:
File details
Details for the file vapoursynth_znedi3-3.0-py3-none-musllinux_1_2_aarch64.whl.
File metadata
- Download URL: vapoursynth_znedi3-3.0-py3-none-musllinux_1_2_aarch64.whl
- Upload date:
- Size: 13.7 MB
- Tags: Python 3, musllinux: musl 1.2+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6a8566b698673277e44866cc38f46dc6f57ed72ee711c20391e4f7b1e647c345
|
|
| MD5 |
e000323be5156119e398c2ff81903fef
|
|
| BLAKE2b-256 |
2e24ee731728bbe32b9dcc353b9bfc9ea0998d427a84f487cc730af646593a4e
|
Provenance
The following attestation bundles were made for vapoursynth_znedi3-3.0-py3-none-musllinux_1_2_aarch64.whl:
Publisher:
build.yml on vapoursynth/znedi3-pypi
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
vapoursynth_znedi3-3.0-py3-none-musllinux_1_2_aarch64.whl -
Subject digest:
6a8566b698673277e44866cc38f46dc6f57ed72ee711c20391e4f7b1e647c345 - Sigstore transparency entry: 1391587364
- Sigstore integration time:
-
Permalink:
vapoursynth/znedi3-pypi@f344f913778904f8e27c74013b0a5cba30b23ed7 -
Branch / Tag:
refs/tags/r3 - Owner: https://github.com/vapoursynth
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
build.yml@f344f913778904f8e27c74013b0a5cba30b23ed7 -
Trigger Event:
push
-
Statement type:
File details
Details for the file vapoursynth_znedi3-3.0-py3-none-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.
File metadata
- Download URL: vapoursynth_znedi3-3.0-py3-none-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 12.9 MB
- Tags: Python 3, manylinux: glibc 2.27+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7349cefec1b279643d84e1c1958e0ecda1993cc450299928c4858ec3ed0d412e
|
|
| MD5 |
e9597bf486ddb36042f0b7cf13d9bd12
|
|
| BLAKE2b-256 |
db74ed47347ff12332c449f8586ef04fc50b0ede64153a07a4afa29c72b8aee1
|
Provenance
The following attestation bundles were made for vapoursynth_znedi3-3.0-py3-none-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:
Publisher:
build.yml on vapoursynth/znedi3-pypi
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
vapoursynth_znedi3-3.0-py3-none-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl -
Subject digest:
7349cefec1b279643d84e1c1958e0ecda1993cc450299928c4858ec3ed0d412e - Sigstore transparency entry: 1391587388
- Sigstore integration time:
-
Permalink:
vapoursynth/znedi3-pypi@f344f913778904f8e27c74013b0a5cba30b23ed7 -
Branch / Tag:
refs/tags/r3 - Owner: https://github.com/vapoursynth
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
build.yml@f344f913778904f8e27c74013b0a5cba30b23ed7 -
Trigger Event:
push
-
Statement type:
File details
Details for the file vapoursynth_znedi3-3.0-py3-none-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.
File metadata
- Download URL: vapoursynth_znedi3-3.0-py3-none-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
- Upload date:
- Size: 12.9 MB
- Tags: Python 3, manylinux: glibc 2.27+ ARM64, manylinux: glibc 2.28+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2a4fcf062b8b7f873f73f2437058f9e13d4d101ae633c393f5670849483eab4b
|
|
| MD5 |
26c24e4a8b9410fa4f91c0f3a8c3ffa9
|
|
| BLAKE2b-256 |
26e1d7bbc007dd7c7b9ef598a292cc48e44a4bfec2933c7260aff0bea92c8b14
|
Provenance
The following attestation bundles were made for vapoursynth_znedi3-3.0-py3-none-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl:
Publisher:
build.yml on vapoursynth/znedi3-pypi
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
vapoursynth_znedi3-3.0-py3-none-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl -
Subject digest:
2a4fcf062b8b7f873f73f2437058f9e13d4d101ae633c393f5670849483eab4b - Sigstore transparency entry: 1391587437
- Sigstore integration time:
-
Permalink:
vapoursynth/znedi3-pypi@f344f913778904f8e27c74013b0a5cba30b23ed7 -
Branch / Tag:
refs/tags/r3 - Owner: https://github.com/vapoursynth
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
build.yml@f344f913778904f8e27c74013b0a5cba30b23ed7 -
Trigger Event:
push
-
Statement type:
File details
Details for the file vapoursynth_znedi3-3.0-py3-none-macosx_15_0_x86_64.whl.
File metadata
- Download URL: vapoursynth_znedi3-3.0-py3-none-macosx_15_0_x86_64.whl
- Upload date:
- Size: 12.8 MB
- Tags: Python 3, macOS 15.0+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1d363bb1fdc8d87e25605129a30078339cf7bd7fea82dac984976366f013b573
|
|
| MD5 |
685b2e940ba104b59bd9b5faab6acc15
|
|
| BLAKE2b-256 |
7a4d62f4666bb023b4fcb3aa5ea10535eeaea3ce117618bb18e9278e7c2cbdc6
|
Provenance
The following attestation bundles were made for vapoursynth_znedi3-3.0-py3-none-macosx_15_0_x86_64.whl:
Publisher:
build.yml on vapoursynth/znedi3-pypi
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
vapoursynth_znedi3-3.0-py3-none-macosx_15_0_x86_64.whl -
Subject digest:
1d363bb1fdc8d87e25605129a30078339cf7bd7fea82dac984976366f013b573 - Sigstore transparency entry: 1391587408
- Sigstore integration time:
-
Permalink:
vapoursynth/znedi3-pypi@f344f913778904f8e27c74013b0a5cba30b23ed7 -
Branch / Tag:
refs/tags/r3 - Owner: https://github.com/vapoursynth
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
build.yml@f344f913778904f8e27c74013b0a5cba30b23ed7 -
Trigger Event:
push
-
Statement type:
File details
Details for the file vapoursynth_znedi3-3.0-py3-none-macosx_15_0_arm64.whl.
File metadata
- Download URL: vapoursynth_znedi3-3.0-py3-none-macosx_15_0_arm64.whl
- Upload date:
- Size: 12.7 MB
- Tags: Python 3, macOS 15.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9302ad3f75892ecf9b04c1c0e3ab828868c64a0e1c2e24d17415c69051e95fda
|
|
| MD5 |
b21d9f1e016386c48aba752b1e97efd8
|
|
| BLAKE2b-256 |
2ebb85e34b98943ab50f68fd561dd8bdc281ca7365e0294b5ba678e8468fbb12
|
Provenance
The following attestation bundles were made for vapoursynth_znedi3-3.0-py3-none-macosx_15_0_arm64.whl:
Publisher:
build.yml on vapoursynth/znedi3-pypi
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
vapoursynth_znedi3-3.0-py3-none-macosx_15_0_arm64.whl -
Subject digest:
9302ad3f75892ecf9b04c1c0e3ab828868c64a0e1c2e24d17415c69051e95fda - Sigstore transparency entry: 1391587423
- Sigstore integration time:
-
Permalink:
vapoursynth/znedi3-pypi@f344f913778904f8e27c74013b0a5cba30b23ed7 -
Branch / Tag:
refs/tags/r3 - Owner: https://github.com/vapoursynth
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
build.yml@f344f913778904f8e27c74013b0a5cba30b23ed7 -
Trigger Event:
push
-
Statement type: