Implement film grain synthesis
In theory we could try somehow merging apply_to_row_y
and apply_to_row_uv
. They are separate because I wrote the simpler y
function first. It's not impossible to reconcile their differences, but I'm not sure whether it would be worth the effort. (It would most likely also be slower, since the luma-specific code affects the most pixels and keeping it with as few branches as possible should therefore help)
TODO:
- fuzz
- test on other files than the ones I've thrown at it
- benchmark vs libaom
- parallelize
- SIMD
- test bitexactness (md5) against libaom
- avoid memcpy() by using per-plane refs (requires
picture
changes) - add GLSL shader example to docs?
Edited by Niklas Haas