#[non_exhaustive]pub enum MotionEstimation {
Auto,
Direct,
Chained {
refine_radius: u32,
},
}Expand description
How motion toward a temporal neighbour is estimated.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
Auto
Picks Direct or Chained from the temporal radius when the
denoiser is built.
MotionEstimation::resolve describes the rule and where it
came from.
Direct
Matches every neighbour against the centre frame directly, at the configured search radius.
The cost grows with the temporal radius, because each neighbour repeats the whole coarse and fine search.
Chained
Measures motion only between adjacent frames, once per pushed frame.
Those per-step vectors are then joined into a seed for each neighbour, and a small seeded search cleans up whatever drift is left.
Implementations§
Source§impl MotionEstimation
impl MotionEstimation
Sourcepub fn chained_default() -> MotionEstimation
pub fn chained_default() -> MotionEstimation
Builds a Chained estimation with the library’s default
refinement radius.
Sourcepub fn resolve(self, temporal_radius: u32) -> MotionEstimation
pub fn resolve(self, temporal_radius: u32) -> MotionEstimation
Resolves Auto against the temporal radius, always returning a
concrete Direct or Chained.
Direct and Chained pass through unchanged whatever the
radius. [CHAINED_RADIUS_THRESHOLD] is where the switch happens.
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