Skip to content

Compared with other implementations

Several implementations of this method exist. This says plainly what is different about this one, including where another is the better choice.

This project Typical others
Installable with pip Yes Sometimes
Checked against the authors' published output Yes, automatically, on every change Rarely
Runs on NVIDIA hardware Yes, hand-written and tuned Rarely
Runs on Apple, AMD, Intel hardware Yes, through Metal, Vulkan or OpenCL Rarely
Phase-based method (2013) Yes, on the processor Sometimes
Building blocks usable separately Yes, on every backend Sometimes
Continuous testing Yes, on every commit Rarely
Licence Research and non-commercial Often permissive

What is genuinely different

The comparison is the product. The NumPy version is checked against the authors' own rendered output, and every other backend is then checked, operation by operation, against that NumPy version. A magnification nobody has checked is a picture, not a measurement.

It reaches hardware other implementations do not. Most are processor only. This has a tuned NVIDIA path and a portable path covering Apple, AMD and Intel.

The parts are usable separately. The pyramids, filters and colour conversion are public, on every backend, so it can be a component in something larger rather than only a program that makes a video.

Where something else may suit you better

  • You need a permissive licence. This one is restricted to non-commercial use and cannot be otherwise, for the reasons on the licence page. A cleanroom implementation under a permissive licence would be the answer.
  • You want a polished phase-based implementation. The 2013 method is here, on the processor, and checked against synthetic motion rather than the authors' output — weaker evidence, and it has no graphics backend yet. If that method is your main need, a dedicated implementation may be more complete.
  • You want a graphical program. This is a library and a command-line tool.

Not claimed

No benchmark against other implementations is published here. A fair speed comparison means running everything on the same hardware with the same clip and parameters, and that has not been done. The performance page reports only this project measured against its own reference.