Skip to main content

rate_distortion_binary

Function rate_distortion_binary 

Source
pub fn rate_distortion_binary(
    source_prob: f64,
    distortion: f64,
) -> Result<f64, NumRs2Error>
Expand description

Compute rate-distortion function for binary source

§Arguments

  • source_prob - Probability of source symbol 1
  • distortion - Maximum allowed distortion (0 ≤ D ≤ min(p, 1-p))

§Returns

Rate-distortion R(D) in bits

§Mathematical Formula

For binary source with p = P(X=1):

R(D) = H(p) - H(D)  if D ≤ min(p, 1-p)
     = 0            if D ≥ min(p, 1-p)

§Examples

use numrs2::new_modules::information_theory::coding::rate_distortion_binary;

// Fair coin, zero distortion
let r = rate_distortion_binary(0.5, 0.0).expect("valid distribution and distortion");
assert!((r - 1.0).abs() < 1e-10); // R(0) = H(0.5) = 1 bit

// Fair coin, maximum distortion
let r2 = rate_distortion_binary(0.5, 0.5).expect("valid distribution and distortion");
assert!(r2.abs() < 1e-10); // R(0.5) = 0 bits