2021-12-01 07:13:34 +00:00
|
|
|
# Dithering with OpenCL
|
|
|
|
|
|
|
|
## Background
|
|
|
|
|
|
|
|
[Project Proposal PDF](https://seodisparate.com/static/uploads/EN605.617.81.FA21_ProjectProposal.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.
|
2021-12-01 07:16:33 +00:00
|
|
|
|
2021-12-01 08:33:28 +00:00
|
|
|
# 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.
|
|
|
|
|
2021-12-01 08:36:46 +00:00
|
|
|
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).
|
|
|
|
|
2021-12-03 11:15:02 +00:00
|
|
|
~~WARNING: Video decoding is still a WIP. The video is currently decoded, but an
|
2021-12-01 08:41:49 +00:00
|
|
|
output video being encoded hasn't been implemented yet. The current
|
2021-12-03 11:15:02 +00:00
|
|
|
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 .
|
2021-12-01 08:41:49 +00:00
|
|
|
|
2021-12-01 07:16:33 +00:00
|
|
|
# Other Notes
|
|
|
|
|
2021-12-01 07:50:11 +00:00
|
|
|
~~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.
|
2021-12-01 07:51:28 +00:00
|
|
|
|
|
|
|
# Legal Stuff
|
|
|
|
|
|
|
|
[This program uses FFmpeg which is licensed under the LGPL 2.1 license](https://ffmpeg.org/legal.html)
|