Vinrb
How to Design and Train Your Implicit Neural Representation for Video Compression
Install / Use
/learn @mgwillia/VinrbREADME
Video Implicit Neural Representation Benchmark (VINRB)
Official code implementation for "How to Design and Train Your Implicit Neural Representation for Video Compression." We currently support NeRV, E-NeRV, HNeRV, HiNeRV, FFNeRV, DiffNeRV, DiVNeRV, with support for most meaningful ablations and combinations of their many components. This repository serves both as a benchmark of progress so far and a framework that enables future work on new video compression INRs.
Environment Setup
pip install
For best results, use Python 3.9.6 and cuda 11.8.0. To match our environment compile on NVIDIA RTXA5000. The code runs on other cards as well. We test and verify on RTXA4000 and certain HiNeRV settings require a card with a lot of GPU RAM (we use an RTXA6000).
pip install wheel
pip install torch==2.1.2 torchvision==0.16.2 torchaudio==2.1.2 --index-url https://download.pytorch.org/whl/cu118
pip install -r requirements.txt
dotenv
You need 2 variables in a .env at the root of the project, VENV_PATH and VINRB_PATH.
VENV_PATH is the absolute path to your python virtual environment. There should be no trailing slash.
VINRB_PATH is the absolute path to the root of the project. There should be no trailing slash.
Example .env file contents:
VENV_PATH=/your_path/vinrb_env
VINRB_PATH=/your_path/vinrb
Sample Command
To run our RNeRV configuration, in "short" mode (2 minutes on our RTXA5000), run
python scripts/flexible_benchmark.py --data-shape 1080_1920 --num-frames 600 --data-path /path/to/UVG/honeybee_1080 --save-path results/honeybee_1080 --model-type enerv --checkpoint-suffix rnerv-short-1_5 --config-override-path configs/overrides/rnerv-1_5.json --positional-encoding ffnerv --train-epochs 11 --warmup-epochs 0
Compressed INRs are saved to results, model weights are saved to checkpoints, csvs with training progress (quality, wall time) are saved in output, and PSNR/bpp are printed to standard out once training completes.
Beware! Results for hybrid INRs (HNeRV, DiffNeRV, DivNeRV) are currently unreliable due to set_zero operating on parts of the model that are not saved (since they are not part of the bitstream). If you run the code as-is, hybrid INRs will produce noise output during compression evals. This can be temporarily bypassed by commenting set_zero(), but this should be treated with caution, and will be refactored in the future.
Related Skills
diffs
337.3kUse the diffs tool to produce real, shareable diffs (viewer URL, file artifact, or both) instead of manual edit summaries.
clearshot
Structured screenshot analysis for UI implementation and critique. Analyzes every UI screenshot with a 5×5 spatial grid, full element inventory, and design system extraction — facts and taste together, every time. Escalates to full implementation blueprint when building. Trigger on any digital interface image file (png, jpg, gif, webp — websites, apps, dashboards, mockups, wireframes) or commands like 'analyse this screenshot,' 'rebuild this,' 'match this design,' 'clone this.' Skip for non-UI images (photos, memes, charts) unless the user explicitly wants to build a UI from them. Does NOT trigger on HTML source code, CSS, SVGs, or any code pasted as text.
openpencil
1.8kThe world's first open-source AI-native vector design tool and the first to feature concurrent Agent Teams. Design-as-Code. Turn prompts into UI directly on the live canvas. A modern alternative to Pencil.
HappyColorBlend
HappyColorBlendVibe Project Guidelines Project Overview HappyColorBlendVibe is a Figma plugin for color palette generation with advanced tint/shade blending capabilities. It allows designers to
