Download Latest Version v2.0.1 source code.zip (16.7 MB) Google Add to Preferred Sources
Home / v1.5.1
Name Modified Size InfoDownloads / Week
Parent folder
README.md 2026-06-07 1.6 kB
v1.5.1 source code.tar.gz 2026-06-07 9.7 MB
v1.5.1 source code.zip 2026-06-07 9.8 MB
Totals: 3 Items   19.5 MB 0

v1.5.1 — Bug Fixes & Algorithm Reliability

Frequency-Domain Algorithm Fixes

DCT — Round-trip extraction was failing when DCT coefficients were near zero (floating-point noise ~10^-14 flipped bits after IDCT→clamp→DCT). Fixed by guaranteeing a minimum coefficient pair gap of \max(|diff|, 5) + K.

DFT — Same gap fix applied. Also fixed conjugate-symmetry preservation (only real parts were modified, breaking IDFT reconstruction).

DWT — LSB embedding had ~39% bit-flip rate because the 2×2 Haar DWT divides by 2 in the inverse transform, losing ±1 changes through rounding. Changed to step-2 embedding (\ loor(coeff/2)×2 + bit), achieving 100% preservation.

Hybrid DCT-DWT — Rewritten from scratch. The previous implementation blended two independently watermarked images at 70/30 pixel level, corrupting both watermarks. Now embeds sequentially: DCT pair comparison → DWT step-2, with no blending. Added \xtractHybridDCTDWT().

Workflow & Automation

  • a11y-fix.yml: Changed from direct push to PR creation via \peter-evans/create-pull-request. SHA pinned to v7.0.8. Scorecard score: 9/10 (max achievable for write workflows).
  • translate.yml: Re-enabled with \if: github.actor != 'github-actions[bot]'. Uses LibreTranslate as free fallback.
  • Scorecard alert [#205]: Fixed (wrong SHA in a11y-fix.yml causing zizmor block).

Full Algorithm Test Results (1366×768 image)

Algorithm Round-trip Time
DCT ✅ 100% 2.0s
DFT ✅ 100% 5.0s
DWT ✅ 100% 0.1s
Hybrid ✅ 100% 2.3s
Source: README.md, updated 2026-06-07