Skip to content

Bayer Dithering v0.3

Choose a tag to compare

@madmattp madmattp released this 20 May 20:44
· 17 commits to main since this release
c7cf875

Changelog

[0.3.0] - 2026-05-20

➕ Added

  • GPU Acceleration: Introduced the --arch gpu backend powered by taichi, allowing massive parallelization and blazing-fast render times for large images and videos.
  • Global CLI: You can now install the package and use the dither command globally directly from your terminal.
  • Python API: The project is now a fully installable modular package (pip install BayerDithering). You can import BayerDither, DitherConfig, and processors directly into your own Python scripts.

🔧 Changed

  • Architectural Rewrite: Transitioned from a monolithic script to a clean, object-oriented framework utilizing the Strategy Pattern (CPUProcessor and GPUProcessor).
  • Dependency Management: Replaced the legacy requirements.txt with a modern pyproject.toml (PEP 621 standard) for streamlined builds and metadata management.
  • Context Managers for Media: Video and GIF processing now enforce the with statement (ProcessedVideo, ProcessedGIF) to guarantee safe memory handling and eliminate leftover temporary files.
  • Auto-Naming: If the --output flag is omitted, the CLI now automatically generates an intuitive output filename (e.g., input_dithered.mp4).

⚙️ Fixed

  • Memory Leaks: Completely overhauled how temporary audio and video tracks are handled during FFmpeg/OpenCV merges, preventing blocked background processes.
  • Thread Scaling Constraints: Replaced the old manual threading arguments with native backend parallelization, making CPU and GPU scaling fully automatic across different OS architectures.

📁 Assets & Docs

  • 📦 Distribution Builds: Added official .whl and .tar.gz distribution assets for direct PyPI-style installation.

Full Changelog: v0.2.2...v0.3