#[non_exhaustive]pub enum TrackKernel {
Auto,
FixedPoint,
Reference,
}Expand description
Arithmetic of the 8-bit tracker’s window kernels, see
TrackOptions::kernel.
The fixed-point kernels follow the scheme of OpenCV’s
calcOpticalFlowPyrLK: window samples are bilinear interpolations with
14-bit integer weights, kept as 16-bit integers with 5 fractional bits for
intensities and 6 for gradients, and every window sum is an exact integer
accumulated from 16-bit products. The integers are the same on every
instruction set, so results are bit for bit identical on x86 (SSE2,
AVX2), wasm32 (simd128) and the scalar fallback. Against the f32
reference, tracked positions typically differ by a few ten-thousandths of
a pixel; see the changelog of 0.6.0 for measurements.
The f32 tracker (FloatTrackerContext) always uses its f32 kernels.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
Auto
Fixed point where the target has SIMD kernels for it: x86 and x86-64
with SSE2 (AVX2 when the CPU has it) and wasm32 built with simd128.
The f32 reference elsewhere, including aarch64, which has no
fixed-point SIMD kernel yet.
FixedPoint
Fixed point on every target, with a scalar kernel where there is no
SIMD one. Gives the same results as Auto on SIMD targets.
Reference
The f32 reference kernel, the arithmetic of 0.5 and earlier releases. Windows wider than 127 px always use it.