# Changelog

All notable changes to this project are documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
Entries after `0.1.0` are generated by [release-plz](https://release-plz.dev)
from [Conventional Commits](https://www.conventionalcommits.org).

## [0.2.0](https://github.com/justin13888/iqa-rs/compare/iqa-v0.1.4...iqa-v0.2.0) - 2026-06-09

### Added

- update CI and Cargo configuration to use 'full' feature set for testing and linting
- *(cli)* expose all iqa metrics in iqa-cli
- add CIEDE2000 (ΔE₀₀) color-difference metric

### Fixed

- update implementation status for CIEDE2000 metric in README

### Other

- bump version of iqa and iqa-cli to 0.2.0 and update dependencies
- Merge branch 'master' of github.com:justin13888/iqa-rs
- remove XPSNR from metrics table

## [0.1.4](https://github.com/justin13888/iqa-rs/compare/v0.1.3...v0.1.4) - 2026-06-09

### Other

- cross-validate SSIMULACRA2 against the cloudinary 2.1 reference

## [0.1.3](https://github.com/justin13888/iqa-rs/compare/v0.1.2...v0.1.3) - 2026-06-09

### Added

- add MS-SSIM metric
- add DSSIM (structural dissimilarity) metric

### Other

- Merge remote-tracking branch 'origin/master' into feat/psnr-hvs-m
- validate MS-SSIM against the reference msssim.m

## [0.1.2](https://github.com/justin13888/iqa-rs/compare/v0.1.1...v0.1.2) - 2026-06-08

### Other

- clarify how release-plz chooses the next version

## [0.1.1](https://github.com/justin13888/iqa-rs/compare/v0.1.0...v0.1.1) - 2026-06-08

### Added

- add butteraugli metric
- vendor lcms2, building it from source by default
- add native SSIM metric

### Fixed

- initialize Butteraugli shim's uninitialized SIMD row padding
- make lcms2 backends a structural XOR

### Other

- classify *.ppm as binary in .gitattributes
- harden butteraugli wrapper coverage
- numerically cross-validate butteraugli against libjxl v0.8.2
- add package-size & FFI-compiles-away check ([#6](https://github.com/justin13888/iqa-rs/pull/6))

## [0.1.0](https://github.com/justin13888/iqa-rs/releases/tag/v0.1.0) - 2026-05-22

Initial release.

### Added

- `Image<F>` — a single image type parameterized by a compile-time
  `PixelFormat` marker that fixes color space, channel layout, and bit depth, so
  comparing mismatched images is a compile error rather than a silent wrong
  score. Supports sRGB, grayscale, and RGBA at 8- and 16-bit depth.
- `psnr` — peak signal-to-noise ratio, a native Rust implementation with
  RGB-averaged and Rec.709 luma modes.
- `ssimulacra2` — SSIMULACRA2, bound via FFI to the vendored
  [cloudinary/ssimulacra2](https://github.com/cloudinary/ssimulacra2) C++
  reference.
- Per-metric Cargo features (`psnr`, `ssimulacra2`), both enabled by default.
