Skip to main content

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.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

vapoursynth_znedi3-3.3.tar.gz (13.8 MB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

vapoursynth_znedi3-3.3-py3-none-win_amd64.whl (13.2 MB view details)

Uploaded Python 3Windows x86-64

vapoursynth_znedi3-3.3-py3-none-musllinux_1_2_x86_64.whl (13.8 MB view details)

Uploaded Python 3musllinux: musl 1.2+ x86-64

vapoursynth_znedi3-3.3-py3-none-musllinux_1_2_aarch64.whl (13.7 MB view details)

Uploaded Python 3musllinux: musl 1.2+ ARM64

vapoursynth_znedi3-3.3-py3-none-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (12.9 MB view details)

Uploaded Python 3manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

vapoursynth_znedi3-3.3-py3-none-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (12.9 MB view details)

Uploaded Python 3manylinux: glibc 2.27+ ARM64manylinux: glibc 2.28+ ARM64

vapoursynth_znedi3-3.3-py3-none-macosx_15_0_x86_64.whl (12.8 MB view details)

Uploaded Python 3macOS 15.0+ x86-64

vapoursynth_znedi3-3.3-py3-none-macosx_15_0_arm64.whl (12.7 MB view details)

Uploaded Python 3macOS 15.0+ ARM64

File details

Details for the file vapoursynth_znedi3-3.3.tar.gz.

File metadata

  • Download URL: vapoursynth_znedi3-3.3.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

Hashes for vapoursynth_znedi3-3.3.tar.gz
Algorithm Hash digest
SHA256 8d94d6d74296adcf0d03d63ee204445526fed1c771be2fa8e998bffc0c32d8e4
MD5 be7da824d952904d1cd9a4382391042d
BLAKE2b-256 d6c9774a61d0e213f75a2eaf36dba9c88b84689b9d2550c1370b8112e77b4d07

See more details on using hashes here.

Provenance

The following attestation bundles were made for vapoursynth_znedi3-3.3.tar.gz:

Publisher: build.yml on vapoursynth/znedi3-pypi

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file vapoursynth_znedi3-3.3-py3-none-win_amd64.whl.

File metadata

File hashes

Hashes for vapoursynth_znedi3-3.3-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 28115bbef036b746f68e0b79359de8a69fe0cdcae3320bad55eabb73982bf504
MD5 53e08eb67d2d4cd7ef3cec41cfc06d7f
BLAKE2b-256 998efb2e045b4fbeda28df0ed6773563a04345a45ca878ad8ce1cb017005fde8

See more details on using hashes here.

Provenance

The following attestation bundles were made for vapoursynth_znedi3-3.3-py3-none-win_amd64.whl:

Publisher: build.yml on vapoursynth/znedi3-pypi

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file vapoursynth_znedi3-3.3-py3-none-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for vapoursynth_znedi3-3.3-py3-none-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 82b12eab8b39ea454ee997e995166e0a787cb81c66d38ad62122376db13cbd8a
MD5 c08bf1e62629b300bde39172f77cd710
BLAKE2b-256 eb8f03ef6395d9ee95d7b3a394d8b700ee6b200fced1e9277ea5524975b0453d

See more details on using hashes here.

Provenance

The following attestation bundles were made for vapoursynth_znedi3-3.3-py3-none-musllinux_1_2_x86_64.whl:

Publisher: build.yml on vapoursynth/znedi3-pypi

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file vapoursynth_znedi3-3.3-py3-none-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for vapoursynth_znedi3-3.3-py3-none-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 6e00688e90ce88278fcf3225e2a02f14e0f1a7aa143420f6cd81a64ddb9c9e8a
MD5 2087e31c2dd3e57c0a68bb86e83f0d65
BLAKE2b-256 7a46ea6ecdb0eb5caebefb588cc05ce68cb5e046bd160f90dd67cd6b7cbc66b6

See more details on using hashes here.

Provenance

The following attestation bundles were made for vapoursynth_znedi3-3.3-py3-none-musllinux_1_2_aarch64.whl:

Publisher: build.yml on vapoursynth/znedi3-pypi

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file vapoursynth_znedi3-3.3-py3-none-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for vapoursynth_znedi3-3.3-py3-none-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 4bfb62f6746e94fd526d4b8c5d88eb1b732f9a5b21e8a08d9d8c7bb4cc536478
MD5 5fa3990fb1433e5b0c77fb9ce37454e0
BLAKE2b-256 811805910dd731033fa0ac988caa8cccca430955aef5263fd2c5d9f548c3775a

See more details on using hashes here.

Provenance

The following attestation bundles were made for vapoursynth_znedi3-3.3-py3-none-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: build.yml on vapoursynth/znedi3-pypi

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file vapoursynth_znedi3-3.3-py3-none-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for vapoursynth_znedi3-3.3-py3-none-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 2c5e91a0ae760c150b56fb8e8c4ff521c20edca46cb53c4c7764bd8887660601
MD5 4813876f43c12ade345c100e392aa765
BLAKE2b-256 dac89ff54092ce476d618d1d42aabe657af3a2d3b256c5c2c9036ee2df792f15

See more details on using hashes here.

Provenance

The following attestation bundles were made for vapoursynth_znedi3-3.3-py3-none-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl:

Publisher: build.yml on vapoursynth/znedi3-pypi

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file vapoursynth_znedi3-3.3-py3-none-macosx_15_0_x86_64.whl.

File metadata

File hashes

Hashes for vapoursynth_znedi3-3.3-py3-none-macosx_15_0_x86_64.whl
Algorithm Hash digest
SHA256 f751c69561027238b0ddfc14ecd793979ecd29ae8740ce6d10a8bebd8fdf46ec
MD5 3bb28cb866f69eab9de3c0f3da141999
BLAKE2b-256 54b2ee40afdeb83747a840fff8b21b7cd3e3ef0efd221b68b43b1c2b250ee99f

See more details on using hashes here.

Provenance

The following attestation bundles were made for vapoursynth_znedi3-3.3-py3-none-macosx_15_0_x86_64.whl:

Publisher: build.yml on vapoursynth/znedi3-pypi

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file vapoursynth_znedi3-3.3-py3-none-macosx_15_0_arm64.whl.

File metadata

File hashes

Hashes for vapoursynth_znedi3-3.3-py3-none-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 886af071df4b07254df44be91d6b88c4e489a547a9c34b5f6f1de778881f071d
MD5 81b3e1d97e8ded62c2fab47777621b19
BLAKE2b-256 06cb090b6eb10abea0bd0236fe24a4956f217222901b1a55568b4d31eee46c8f

See more details on using hashes here.

Provenance

The following attestation bundles were made for vapoursynth_znedi3-3.3-py3-none-macosx_15_0_arm64.whl:

Publisher: build.yml on vapoursynth/znedi3-pypi

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

This release

3.3 This release

8 files

3.2

8 files

3.0

8 files

2.2

8 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page