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

Re-exports§

pub use corpus::Corpus;
pub use corpus::CorpusImage;
pub use corpus::ImageCategory;
pub use corpus::SparseCheckout;
pub use corpus::SparseFilter;
pub use corpus::SparseStatus;
pub use error::Error;
pub use error::Result;
pub use eval::report::CodecResult;
pub use eval::report::CorpusReport;
pub use eval::report::ImageReport;
pub use eval::session::EvalConfig;
pub use eval::session::EvalSession;
pub use eval::session::ImageData;
pub use import::CsvImporter;
pub use import::CsvSchema;
pub use import::ExternalResult;
pub use metrics::MetricConfig;
pub use metrics::MetricResult;
pub use metrics::PerceptionLevel;
pub use stats::ChartConfig;
pub use stats::ChartPoint;
pub use stats::ChartSeries;
pub use stats::ParetoFront;
pub use stats::RDPoint;
pub use stats::Summary;
pub use stats::generate_svg;
pub use viewing::ViewingCondition;

Modules§

corpus
Corpus management for test image collections.
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.