X-Git-Url: https://git.nihav.org/?p=nihav.git;a=blobdiff_plain;f=nihav-codec-support%2Fsrc%2Fvq%2Fgeneric_elbg.rs;h=d6c30d2a6de791d9d39268ea7c8d17a05810a53d;hp=2dfed5bf9f08496f272508064551ef014fdcd102;hb=379524159c95f1c3639976ccf35f9d47cd9732ac;hpb=f808017ea8cd6a3a5e6964d7e4467672a6c74245 diff --git a/nihav-codec-support/src/vq/generic_elbg.rs b/nihav-codec-support/src/vq/generic_elbg.rs index 2dfed5b..d6c30d2 100644 --- a/nihav-codec-support/src/vq/generic_elbg.rs +++ b/nihav-codec-support/src/vq/generic_elbg.rs @@ -9,7 +9,7 @@ impl RNG { fn new() -> Self { Self { seed: 0x1234 } } fn next(&mut self) -> u8 { if (self.seed & 0x8000) != 0 { - self.seed = (self.seed & 0x7FFF) * 2 ^ 0x1B2B; + self.seed = ((self.seed & 0x7FFF) * 2) ^ 0x1B2B; } else { self.seed <<= 1; } @@ -148,8 +148,9 @@ impl> ELBG { clu1.calc_dist(); clu0.dist + clu1.dist } + #[allow(clippy::cognitive_complexity)] pub fn quantise(&mut self, src: &[T], dst: &mut [T]) -> usize { - if src.len() < 1 || dst.len() != self.clusters.len() { + if src.is_empty() || dst.len() != self.clusters.len() { return 0; } let mut old_cb = vec![T::default(); self.clusters.len()]; @@ -198,7 +199,7 @@ impl> ELBG { } // put points into the nearest clusters - indices.truncate(0); + indices.clear(); for entry in entries.iter() { let mut bestidx = 0; let mut bestdist = std::u32::MAX; @@ -229,8 +230,8 @@ impl> ELBG { } let dmean = dist / (dst.len() as u64); - low_u.truncate(0); - high_u.truncate(0); + low_u.clear(); + high_u.clear(); let mut used = vec![false; dst.len()]; for (i, cluster) in self.clusters.iter().enumerate() { if cluster.dist < dmean { @@ -244,7 +245,7 @@ impl> ELBG { if do_elbg_step { do_elbg_step = false; for low_idx in low_u.iter() { - if high_u.len() == 0 { + if high_u.is_empty() { break; } let high_idx_idx = (rng.next() as usize) % high_u.len();