Skip to content

Releases: madmattp/Bayer-Dithering

Bayer Dithering v0.3.2

24 May 20:06

Choose a tag to compare

Changelog

[0.3.2] - 2026-05-24

➕ Added

  • GitHub Actions Automation: Integrated a dedicated workflow for automated documentation compilation and deployment to GitHub Pages.
    (555af32)

🔧 Changed

  • Comprehensive Project Metadata: Expanded pyproject.toml configuration to include precise target audience, graphic multimedia topics, and modern Python lifecycle classifiers (3.13 through 3.15).
    (846be10)
  • Explicit Project URLs: Map-linked the internal repository, documentation hub, and issue tracker ecosystem directly into the packaging distribution metadata profile.
    (246f43c)

⚙️ Fixed

  • Type Hint Strictness: Patched core type-hint constraints governing the internal structural definitions within the animated GIF frame-processing methods.
    (7c6c9ea)
  • Metadata Sanitization: Removed duplicate classifier listings within the build configuration schema.
    (0935ae0)

📁 Assets & Docs

  • MkDocs Platform Launch: Deployed a fully functional documentation suite featuring structured guides for cross-platform installation, explicit CLI command references, and module code-block examples.
    (6693184, 2d4f22b)

Full Changelog: v0.3.1...v0.3.2

Bayer Dithering v0.3.1

21 May 22:28

Choose a tag to compare

Changelog

[0.3.1] - 2026-05-21

➕ Added

  • Optional Dependencies: The taichi GPU backend is now an optional dependency ([gpu]), making the base installation extremely lightweight and universally compatible out-of-the-box.
    (9cbedae)
  • Smart GPU Fallback: The CLI now features graceful degradation. If a user requests hardware acceleration (-a gpu) without the backend installed, the program safely intercepts the call, displays a friendly UI warning, and automatically reroutes processing to the CPU.
    (9aef246)

🔧 Changed

  • Broader Python Support: By making taichi optional, the strict <3.14 Python limitation was inherently lifted. The library can now be installed and run via the CPU pipeline on any modern Python version (>=3.13).
    (9aef246)

⚙️ Fixed

  • API & Import Safety: Implemented the Dummy Object pattern for GPUProcessor. This prevents Python from crashing with a NameError during the import stage of @ti.data_oriented decorators when the taichi backend is missing.
    (9aef246)
  • PEP 639 Compliance: Updated the license declaration in pyproject.toml to use the standard SPDX identifier (license = "MIT"), resolving setuptools deprecation warnings during the build process.
    (9cbedae)

📁 Assets & Docs

  • Updated README.md to include a new "Prerequisites" section explaining the CPU/GPU pipeline differences.
    (9cbedae)
  • Enhanced installation instructions to reflect the new pip install BayerDithering[gpu] command.
    (23d50fb, c7cf875)

Full Changelog: v0.3...v0.3.1

Bayer Dithering v0.3

20 May 20:44
c7cf875

Choose a tag to compare

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

Bayer Dithering v0.2.2

07 Jul 21:41

Choose a tag to compare

Changelog

[0.2.2] - 2025-07-07

⚙️ Fixed

  • GIF Processing: Fixed a bug where frames in GIFs overlapped and produced a "smeared" effect. This was caused by improper transparency settings, which have now been removed.
    (ed129d3)
  • Windows Compatibility: Fixed video processing to use multithreading on Windows and multiprocessing on POSIX systems, ensuring cross-platform stability.
    (c9a6552, 2d07cb4)

➕ Added

  • Upscale Option: Introduced --upscale flag to restore original image/video resolution after downscaling and dithering. Enabled by default.
    (0291dfa)

🔧 Changed

  • Default Video Output: Output videos now use .avi format and the rawvideo codec by default to ensure lossless quality and avoid compatibility issues with .mp4 playback.
    (7c9b758)
  • Defaults Tweaked: Updated default values for contrast (1.5), sharpness (1.6), and downscale factor (2) for better visual results out-of-the-box.
    (1ad0594)
  • Minor parser help message improvements for better clarity.
    (92a05f4, 011ae7e)

📁 Assets & Docs

  • 🐱 Added test images and GIFs for development and verification.
    (415e463, 37a02c9)
  • Updated README.md to reflect upscale feature, video format requirements, and improved examples.
    (47927a0, 82cde03)

Full Changelog: v0.2.1...v0.2.2

Bayer Dithering v0.2.1

15 Mar 22:33

Choose a tag to compare

  • Fixed matrix normalization values.