No description
Find a file
Stephen Seo a4d7156e10 Fix Image::ColorToGray()
Previous implementation had images brighter than usual. The algorithm
used was probably not necessary as it was for converting from
linear-space to a different one.
2021-12-04 11:40:24 +09:00
doxygen WIP libpng image decoding 2021-11-11 22:17:00 +09:00
res Add another generated blue-noise image to res/ 2021-12-01 17:38:34 +09:00
src Fix Image::ColorToGray() 2021-12-04 11:40:24 +09:00
.gitignore WIP libpng image decoding 2021-11-11 22:17:00 +09:00
.lvimrc WIP libpng image decoding 2021-11-11 22:17:00 +09:00
CMakeLists.txt Add arg parsing 2021-12-01 17:31:51 +09:00
Doxyfile WIP libpng image decoding 2021-11-11 22:17:00 +09:00
LICENSE Create LICENSE 2021-12-01 16:48:26 +09:00
README.md Update README.md 2021-12-03 20:15:02 +09:00

Dithering with OpenCL

Background

Project Proposal PDF

The proposal mentioned dithering live-input frames, but I ended up with just dithering single images or turning a video into dithered images.

The "develop" branch may have more up to date code.

Usage

A "blue-noise" image is integral to dithering images. A generated blue-noise image is provided in the "res/" directory. Run the program with "--help" to get info on how to use it.

PNG, PGM, and PPM image formats are supported.

For decoding video, any format that ffmpeg can read should work (though if things don't work, try using MP4 files).

WARNING: Video decoding is still a WIP. The video is currently decoded, but an output video being encoded hasn't been implemented yet. The current implementation writes each video frame to a PNG image in the current directory.

Video decoding and encoding is finished, but there is some noticable drops in quality when encoding to colored dithered video. It may be better to just output each frame to individual PNGs, then combining them later just like as mentioned here: https://trac.ffmpeg.org/wiki/Slideshow .

Other Notes

I plan on adding the MIT License to this project once the course (that this project was made for) is over.

I went ahead and applied the MIT License earlier than noted here.

Legal Stuff

This program uses FFmpeg which is licensed under the LGPL 2.1 license