diff options
author | Niklas Haas <git@haasn.xyz> | 2018-11-13 18:53:10 +0300 |
---|---|---|
committer | Ronald S. Bultje <rsbultje@gmail.com> | 2018-11-19 16:30:12 +0300 |
commit | cfa986fe1b9fa783671ea66cf479a26b2a5aff19 (patch) | |
tree | 00ab188a4eb485310a81548761d67fc8e3ce8ac1 /include/dav1d/dav1d.h | |
parent | 20e9f4df68761e48d44d134ba942e4ecc11446b7 (diff) |
film_grain: implement film grain synthesis
This is using a slightly adapted version of my GPU-based algorithm. The
major difference to the algorithm suggested by the spec (and implemented
in libaom) is that instead of using a line buffer to hold the previous
row's film grain blocks, we compute each row/block fully independently.
This opens up the door to exploit parallelism in the future, since we
don't have any left->right or top->down dependency except for the PRNG
state. (Which we could pre-compute for a massively parallel / GPU
implementation)
That being said, it's probably somewhat slower than using a line buffer
for the serial / single CPU case, although most likely not by much
(since the areas with the most redundant work get progressively smaller,
down to a single 2x2 square for the worst case).
Diffstat (limited to 'include/dav1d/dav1d.h')
-rw-r--r-- | include/dav1d/dav1d.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/include/dav1d/dav1d.h b/include/dav1d/dav1d.h index 7179e6c..5bf7a2b 100644 --- a/include/dav1d/dav1d.h +++ b/include/dav1d/dav1d.h @@ -45,6 +45,7 @@ typedef struct Dav1dSettings { int n_frame_threads; int n_tile_threads; Dav1dPicAllocator allocator; + int apply_grain; } Dav1dSettings; /** |