Skip to main content

HqParams

Struct HqParams 

Source
pub struct HqParams {
    pub auto_strength: bool,
    pub noise_floor: bool,
    pub sigma_override: Option<f32>,
    pub temporal_confidence: bool,
    pub thsad_scale: f32,
    pub sigma_scale: f32,
    pub windowed_noise_estimation: bool,
}
Expand description

Parameters for the quality-focused nlmeans-hq variant.

The measured noise level drives both the effective strength and the distance floor, so the weighting adapts to how noisy the source really is.

Fields§

§auto_strength: bool

Reads strength as a multiplier on the noise level, making the effective FFmpeg-style strength strength * sigma_eff * 255.

Defaults to true.

§noise_floor: bool

Subtracts the expected noise floor from patch distances before weighting, so a match is not penalised for the noise it carries.

Defaults to true.

§sigma_override: Option<f32>

A fixed noise standard deviation in [0, 1] units, replacing the automatic per-frame estimate.

None, the default, measures the noise in each pushed frame and smooths it over time. Some applies one fixed value to every frame instead.

The CLI takes this in 8-bit units through --hq-sigma and divides by 255.

§temporal_confidence: bool

Weights each temporal neighbour by how well it block-matches the centre frame, so occlusion or a change of content collapses its contribution rather than blurring it in.

Only has an effect when temporal_radius is above 0. Defaults to true.

§thsad_scale: f32

A multiplier on the per-pixel mismatch threshold, which sets how much extra SAD a block tolerates before its confidence starts to fall.

Higher values tolerate larger mismatches. Defaults to 1.0.

§sigma_scale: f32

A multiplier applied to each channel’s measured sigma before it folds into the running estimate.

1.0, the default, keeps the measurement as it is. This does nothing when sigma_override is set, because the estimator never runs in that case.

The CLI takes this as --hq-sigma-scale.

§windowed_noise_estimation: bool

Estimates noise fresh from each submit’s own window, instead of smoothing it with an exponential average carried forward from every earlier frame the stream has folded.

false, the default, keeps the temporal EMA every calibrated preset assumes. true makes the automatic estimate depend only on the frames currently in the window, so a crate::frame::PlanarDenoiser::reseed targeting frame n and a continuous stream that reaches frame n compute the same sigma, regardless of how each got there. This does nothing when sigma_override pins a fixed value, because the estimator never runs in that case.

Implementations§

Source§

impl HqParams

Source

pub fn with_sigma(sigma: f32) -> HqParams

The HQ defaults with a fixed noise level in [0, 1] units, which skips automatic estimation.

Trait Implementations§

Source§

impl Clone for HqParams

Source§

fn clone(&self) -> HqParams

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Copy for HqParams

Source§

impl Debug for HqParams

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
Source§

impl Default for HqParams

Source§

fn default() -> HqParams

Returns the “default value” for a type. Read more
Source§

impl PartialEq for HqParams

Source§

fn eq(&self, other: &HqParams) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. Read more
Source§

impl StructuralPartialEq for HqParams

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<C> CloneExpand for C
where C: Clone,

Source§

fn __expand_clone_method(&self, _scope: &mut Scope) -> C

Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> Downcast<T> for T

Source§

fn downcast(&self) -> &T

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoComptime for T

Source§

fn comptime(self) -> Self

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> TuneInputs for T
where T: Clone + Send + Sync + 'static,

Source§

type At<'a> = T

The concrete input type at lifetime 'a.
Source§

impl<T> Upcast<T> for T

Source§

fn upcast(&self) -> Option<&T>

Source§

impl<T> WasmNotSend for T
where T: Send,

Source§

impl<T> WasmNotSendSync for T

Source§

impl<T> WasmNotSync for T
where T: Sync,

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more