Skip to content

Implement film grain synthesis

Niklas Haas requested to merge haasn/dav1d:film_grain into master

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

Merge request reports