Bayer Dithering v0.3
Changelog
[0.3.0] - 2026-05-20
➕ Added
- GPU Acceleration: Introduced the
--arch gpubackend powered bytaichi, allowing massive parallelization and blazing-fast render times for large images and videos. - Global CLI: You can now install the package and use the
dithercommand globally directly from your terminal. - Python API: The project is now a fully installable modular package (
pip install BayerDithering). You can importBayerDither,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 (
CPUProcessorandGPUProcessor). - Dependency Management: Replaced the legacy
requirements.txtwith a modernpyproject.toml(PEP 621 standard) for streamlined builds and metadata management. - Context Managers for Media: Video and GIF processing now enforce the
withstatement (ProcessedVideo,ProcessedGIF) to guarantee safe memory handling and eliminate leftover temporary files. - Auto-Naming: If the
--outputflag 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
.whland.tar.gzdistribution assets for direct PyPI-style installation.
Full Changelog: v0.2.2...v0.3