(quality: u8)
| 464 | } |
| 465 | |
| 466 | pub(crate) fn quality_to_mse(quality: u8) -> f64 { |
| 467 | if quality == 0 { |
| 468 | return 1e20; // + epsilon for floating point errors |
| 469 | } |
| 470 | if quality >= 100 { return 0.; } |
| 471 | let extra_low_quality_fudge = (0.016 / (0.001 + f64::from(quality)) - 0.001).max(0.); |
| 472 | LIQ_WEIGHT_MSE * (extra_low_quality_fudge + 2.5 / (210. + f64::from(quality)).powf(1.2) * (100.1 - f64::from(quality)) / 100.) |
| 473 | } |
| 474 | |
| 475 | pub(crate) fn mse_to_quality(mse: f64) -> u8 { |
| 476 | for i in (1..101).rev() { |
no outgoing calls
no test coverage detected