zoomvtools 1.1.0

Video motion vector analysis utilities in pure Rust
Documentation
# ZOOMVTOOLS CORE KNOWLEDGE BASE

## OVERVIEW

Reusable core library crate for the motion-analysis and interpolation pipeline. This crate must remain free of `vapoursynth` dependencies; host integrations pass frame-plane slices, strides, and metadata in through the public API.

## STRUCTURE

```
crates/zoomvtools/
├── src/lib.rs           # Core crate entry and re-exports
├── src/frame.rs         # Host-neutral frame-plane adapters
├── src/analysis.rs      # MVAnalysisData serialization and property keys
├── src/util.rs          # Pixel trait, CPU gates, math, mask/fps helpers
├── src/util/            # Core utility submodules and tests
├── src/reduce/          # Reduction kernels and tests
├── src/refine/          # Subpel refinement kernels and tests
└── src/...              # Core motion-analysis, SIMD, and helper modules
```

## CONVENTIONS

- No `vapoursynth` imports anywhere in this crate.
- Core algorithm modules live directly in this crate; the root plugin re-exports them instead of compiling duplicate sources.
- `frame::FramePlanes` and `frame::FramePlanesMut` are the boundary for host-owned pixel buffers.
- `analysis::MVAnalysisData` owns the serialized vector metadata format; wrapper crates handle clip/property IO.
- Root wrapper-only helpers such as `with_trace(...)` stay in the plugin crate.

## WHERE TO LOOK

| Task             | Location                                                                                               | Notes                           |
| ---------------- | ------------------------------------------------------------------------------------------------------ | ------------------------------- |
| Frame coupling   | `src/frame.rs`, `src/mv_frame.rs`, `src/mv_gof.rs`, `src/group_of_planes.rs`, `src/plane_of_blocks.rs` | Core frame seam                 |
| Metadata changes | `src/analysis.rs`                                                                                      | Keep byte layout compatible     |
| SIMD/kernel work | `src/{sad,satd,degrain,reduce,refine,...}`                                                             | Runtime dispatch stays in core  |
| Core tests       | `cargo test -p zoomvtools`                                                                             | Includes crate-local unit tests |