vsflip
vsflip is a Python wrapper for VapourSynth that enables perceptual video comparison using the FLIP metric. It computes frame-by-frame error maps that quantify visual differences between a reference and a test video.
This wrapper integrates the flip Python library and works entirely within VapourSynth pipelines.
📦 Features
- Frame-by-frame FLIP comparison between two
VideoNode. - Outputs GrayscaleS error maps where darker pixels indicate better perceptual similarity.
- Supports both
LDRandHDRevaluation modes. - Optionally exports error maps as images (
.png).
🛠 Requirements
- Python ≥ 3.13
- VapourSynth R71 or newer
- NumPy
- Matplotlib
- flip
🚀 Installation
You can install vsflip via pip:
pip install vsflip
✏️ Basic Usage
from vsflip import vsflip_frame, vsflip_video
# Compare the first frame of two clips
result = vsflip_frame(ref_clip, test_clip)
# Compare all frames (must be aligned and same length)
result = vsflip_video(ref_clip, test_clip)
-
Both functions return a VideoNode (GRAYS format).
-
Refer to the Python docstrings for detailed parameter descriptions and options.
Parameter Presets
To help understand the various screen resolution, distance, etc., I have created a set of presets called FlipParams. Check the docstring and the function itself for more info.
License
This project is licensed under the MIT License. See the LICENSE file for details.
Third-party Dependencies
This project uses the FLIP metric python wrapper by NVIDIA, which is licensed under the BSD 3-Clause License.
The flip library's source code or binaries are not bundled with this project. It is installed separately as a required runtime dependency.
TODO List
- Hoping that Nvidia hasn't dropped the project, I want to create the Python wrapper and the Vaporsynth implementation for the CUDA version as well. I actually tried, but I miserably failed... Any help is appreciated.
📬 Contact
For questions, bugs, or feature requests, feel free to open an issue or pull request.
Metadata
Release files for vsflip 1.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| vsflip-1.1.0.tar.gz | 6.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| vsflip-1.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 13.0 kB
Release files / vsflip-1.1.0.tar.gz
| Download URL | vsflip-1.1.0.tar.gz |
|---|---|
| Size | 6.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
8f203931378c4b11c18cdd1c8b996473077911c2692b7d3f99863d5cf5b482d4
|
|
BLAKE2b-256 checksum How to use checksums |
aec70c10437ae28e94483f74b263e82e31a7f704b8bdd5fd3a9894d3ab090296
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Release files / vsflip-1.1.0-py3-none-any.whl
| Download URL | vsflip-1.1.0-py3-none-any.whl |
|---|---|
| Size | 6.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
033d34941f0c45a5a9de12370219be17b4b8c3dd2c9e16ca2a3e51f1e2ed4f1d
|
|
BLAKE2b-256 checksum How to use checksums |
3c28339dd0c9a404b31af3b276064d5867e46c2741332773508b9bd28b8ddf8e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|