chromaprint/fingerprint/quantizer.rs
1/// 4-level scalar quantizer with 3 thresholds.
2#[derive(Debug, Clone, Copy)]
3pub struct Quantizer {
4 pub t0: f64,
5 pub t1: f64,
6 pub t2: f64,
7}
8
9impl Quantizer {
10 /// Quantize a value to one of 4 levels (0-3).
11 #[inline(always)]
12 pub fn quantize(&self, value: f64) -> u32 {
13 if value < self.t1 {
14 if value < self.t0 { 0 } else { 1 }
15 } else {
16 if value < self.t2 { 2 } else { 3 }
17 }
18 }
19}