#[non_exhaustive]pub enum MotionEstimation {
Auto,
Direct,
Chained {
refine_radius: u32,
},
}Expand description
Strategy for estimating a temporal neighbour’s motion vector.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
Auto
Resolve to Direct or Chained from the temporal radius at
denoiser construction. See MotionEstimation::resolve for the
exact rule and its empirical basis.
Direct
Match every neighbour directly against the centre frame at the configured search radius. Cost scales with the temporal radius, since each neighbour repeats the full coarse+fine search.
Chained
Estimate motion between adjacent frames only, once per pushed frame, then compose the per-step vectors into a seed for each neighbour and correct residual drift with a small seeded refinement search.
Implementations§
Source§impl MotionEstimation
impl MotionEstimation
Sourcepub fn chained_default() -> Self
pub fn chained_default() -> Self
Convenience constructor for Chained with the library default
refinement radius.
Sourcepub fn resolve(self, temporal_radius: u32) -> Self
pub fn resolve(self, temporal_radius: u32) -> Self
Resolve Auto against the temporal radius, returning a concrete
Direct or Chained estimation. Never returns Auto. Direct
and Chained pass through unchanged, regardless of
temporal_radius. See [CHAINED_RADIUS_THRESHOLD] for the
threshold this applies.
Trait Implementations§
Source§impl Clone for MotionEstimation
impl Clone for MotionEstimation
Source§fn clone(&self) -> MotionEstimation
fn clone(&self) -> MotionEstimation
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more