Skip to main content

SimulatorConfig

Struct SimulatorConfig 

Source
pub struct SimulatorConfig {
    pub pos_thres: f32,
    pub neg_thres: f32,
    pub sigma_thres: f32,
    pub refractory_us: i64,
    pub cutoff_hz: f32,
    pub leak_rate_hz: f32,
    pub shot_noise_rate_hz: f32,
    pub seed: u64,
    pub upsample: Upsample,
    pub max_upsample: usize,
}
Expand description

Pixel-model parameters. Defaults follow v2e’s for a typical DVS.

Fields§

§pos_thres: f32

Log-intensity increase that emits an ON event.

§neg_thres: f32

Log-intensity decrease that emits an OFF event.

§sigma_thres: f32

Standard deviation of the per-pixel Gaussian threshold mismatch, in log units.

§refractory_us: i64

Minimum time between two events from the same pixel, in µs.

§cutoff_hz: f32

Photoreceptor bandwidth for a white pixel, in Hz. 0 disables the lowpass.

§leak_rate_hz: f32

Spontaneous ON events per pixel per second. 0 disables leak.

§shot_noise_rate_hz: f32

Shot-noise events per pixel per second in the darkest pixels. 0 disables noise.

§seed: u64

Seed for mismatch and noise, so a run is reproducible from its configuration.

§upsample: Upsample

Frame subdivision — see Upsample.

§max_upsample: usize

Ceiling on the sub-steps any one frame pair may be split into.

Adaptive upsampling is driven by the busiest pixel, so one high-contrast edge can push a whole 1080p frame to the ceiling — 64 full-sensor passes for that pair. Lowering this bounds the worst case at some cost in timestamp accuracy where the scene really is that fast; raising it buys accuracy on hard cuts. Clamped to 1..=4096.

Implementations§

Source§

impl SimulatorConfig

Source

pub fn ideal() -> Self

A noiseless, ideal sensor: fixed thresholds, no mismatch, bandwidth, leak or shot noise.

Not realistic, and not the default for that reason — but it is what makes the simulator testable, since an ideal pixel’s event count is an analytic function of the contrast.

Trait Implementations§

Source§

impl Clone for SimulatorConfig

Source§

fn clone(&self) -> SimulatorConfig

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 SimulatorConfig

Source§

impl Debug for SimulatorConfig

Source§

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

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

impl Default for SimulatorConfig

Source§

fn default() -> Self

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

impl PartialEq for SimulatorConfig

Source§

fn eq(&self, other: &SimulatorConfig) -> 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 SimulatorConfig

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<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

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> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

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> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

Source§

impl<T> Same for T

Source§

type Output = T

Should always be 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<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V