... | ... | @@ -17,10 +17,11 @@ Multi-threading: |
|
|
|
|
|
Algorithmic optimizations:
|
|
|
- the identity_* inverse transforms are stored transposed (as are all other coefficient tables). In all other cases, this saves a transpose in assembly, but for those, it actually means we have to transpose, even though in theory we wouldn't have to at all. Therefore, a potential optimization would be to have a special untransposed zigzag coefficient table and remove the transpose from the assembly, which would make those inverse transforms slightly faster;
|
|
|
- early exits in C inverse transform code if eob is small (e.g. identity^2).
|
|
|
- early exits in C inverse transform code if eob is small (e.g. identity^2 - although this applies to all types).
|
|
|
|
|
|
Cleanups:
|
|
|
- palette buffers are always 16-bit, even if content is 8-bit (remaining item in #257);
|
|
|
- lfmask and l/a ctx zero can be done in tile instead of frame context for better distribution.
|
|
|
- the output queue handling is duplicated in `decode.c`, `lib.c` and `obu.c`, so merge this in one common place.
|
|
|
- The `looprestoration`, `mc`, `dav1d_apply_grain`, and `dav1d_init_wedge_masks` functions uses excessively large stack buffers. Rewrite them in a way that reduces the stack usage, for example by using ring buffers or windowed approaches (which we already use for MC/LR SIMD). This would allow us to reduce the thread stack size requirements. |
|
|
\ No newline at end of file |
|
|
- The `looprestoration`, `mc`, `dav1d_apply_grain`, and `dav1d_init_wedge_masks` functions uses excessively large stack buffers. Rewrite them in a way that reduces the stack usage, for example by using ring buffers or windowed approaches (which we already use for MC/LR SIMD). This would allow us to reduce the thread stack size requirements.
|
|
|
- the itx64 branches in `itx_1d.c` appear to allow for UB on extreme inputs. We need to reduce calculations by 1 bit (see non-itx64 branches) to prevent that. I wonder why oss-fuzz didn't pick up on this yet? |
|
|
\ No newline at end of file |