rav1e
rav1e copied to clipboard
[WIP] CDEF parallelization
I wish to contribute and join rav1e development in the future, as I'm heavy invested in video encoding/AV1 and currently I'm a rust newbie. I heard that a good starting piece would be CDEF parallelization, and here we begin)
This code tries to use rayon's parallel iterator for CDEF parallelization, only issue atm is that output can't be borrowed as mutable.
error[E0596]: cannot borrow `*output` as mutable, as `Fn` closures cannot mutate their captured variables
--> src/cdef.rs:614:117
|
614 | ...<T>, input: &Frame<T>, tb: &TileBlocks, output: &mut TileMut<'_, T>));
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot borrow as mutable
The big issue with the output being accessible by all threads, I don't know a "no pain" way to do this, the probable solution is using spinlock on output
I wish to contribute and join rav1e development in the future, as I'm heavy invested in video encoding/AV1 and currently I'm a rust newbie. I heard that a good starting piece would be CDEF parallelization, and here we begin)
Hi @master-of-zen, thank you for the patch. We would be happy to have you join and contribute to the project.
A lot of coordination and discussion for rav1e happens on freenode IRC in #daala. Feel free to join us there as well.