Skip to main content

Crate codec_eval

Crate codec_eval 

Source
Expand description

§codec-eval

Image codec comparison and evaluation library.

This library provides an API-first design where external crates provide encode/decode callbacks, and this library handles quality metrics, viewing conditions, and report generation.

§Quick Start

use codec_eval::{EvalSession, EvalConfig, ViewingCondition, ImageData};

let config = EvalConfig::builder()
    .report_dir("./reports")
    .viewing(ViewingCondition::desktop())
    .build();

let mut session = EvalSession::new(config);

session.add_codec("my-codec", "1.0.0", Box::new(|image, request| {
    // Your encoding logic here
    Ok(encoded_bytes)
}));

let report = session.evaluate_image("test.png", image_data)?;

§Modules

  • error: Error types for the library
  • viewing: Viewing condition modeling for perceptual metrics
  • metrics: Quality metrics (DSSIM, SSIMULACRA2, Butteraugli, PSNR)
  • eval: Evaluation session and report generation
  • corpus: Test corpus management
  • import: CSV import for third-party results
  • stats: Statistical analysis and Pareto front
  • [interpolation]: Quality interpolation and polynomial fitting

Re-exports§

pub use corpus::Corpus;
pub use corpus::CorpusImage;
pub use corpus::ImageCategory;
pub use error::Error;
pub use error::Result;
pub use eval::assert_perception_level;
pub use eval::assert_quality;
pub use eval::evaluate_single;
pub use eval::CodecResult;
pub use eval::CorpusReport;
pub use eval::EvalConfig;
pub use eval::EvalSession;
pub use eval::ImageReport;
pub use eval::ImageData;
pub use import::CsvImporter;
pub use import::ExternalResult;
pub use metrics::MetricConfig;
pub use metrics::MetricResult;
pub use metrics::PerceptionLevel;
pub use stats::ParetoFront;
pub use stats::RDPoint;
pub use stats::Summary;
pub use viewing::ViewingCondition;
pub use viewing::REFERENCE_PPD;
pub use corpus::SparseCheckout;
pub use corpus::SparseFilter;
pub use corpus::SparseStatus;
pub use import::CsvSchema;
pub use metrics::ColorProfile;
pub use metrics::xyb_roundtrip;
pub use stats::iqr;
pub use stats::mean;
pub use stats::median;
pub use stats::percentile;
pub use stats::percentile_u32;
pub use stats::std_dev;
pub use stats::trimmed_mean;
pub use viewing::SimulationMode;
pub use viewing::SimulationParams;

Modules§

corpus
Corpus management for test image collections.
decode
Utility functions for decoding images with ICC profile extraction.
error
Error types for codec-eval operations.
eval
Evaluation session and report generation.
import
CSV import for third-party encoder results.
metrics
Quality metrics for image comparison.
stats
Statistical analysis and Pareto front calculation.
viewing
Viewing condition modeling for perceptual quality assessment.