Age | Commit message (Collapse) | Author |
|
|
|
|
|
|
|
This reverts commit e53314177a5a45a1c1c907464b19ade625d110a6.
Causes issues when the sample has both 8 and 16 bit content.
Credit to Oss-Fuzz.
|
|
|
|
Merges the 3 threading parameters into a single `--threads=` argument.
Frame threading can still be controlled via the `--framedelay=` argument.
Internally, the threading model is now a global thread/task pool design.
Co-authored-by: Ronald S. Bultje <rsbultje@gmail.com>
|
|
Split the 5x5, 3x3, and mix cases into separate functions.
Shrink some tables.
Move some scalar calculations out of the DSP function.
Make Wiener and SGR share the same function prototype to
eliminate a branch in lr_stripe().
|
|
|
|
The previous implementation did two separate passes in the horizontal
and vertical directions, with the intermediate values being stored
in a buffer on the stack. This caused bad cache thrashing.
By interleaving the horizontal and vertical passes in combination
with a ring buffer for storing only a few rows at a time the
performance is improved by a significant amount.
Also split the function into 7-tap and 5-tap versions. The latter is
faster and fairly common (always for chroma, sometimes for luma).
|
|
Combine horizontal and vertical filter pointers into a single parameter
when calling the wiener DSP function.
Eliminate the +128 filter coefficient handling where possible.
|
|
Fixes crashes in dav1d_resize_{avx2,ssse3} on very small resolutions
with super_res enabled but skipped because the width is too small.
|
|
|
|
|
|
|
|
Prior checks were done at the sbrow level. This now allows to call
dav1d_lr_sbrow and dav1d_lr_copy_lpf only when there's something
for them to do.
|
|
Avoid allocating significantly more memory than what is actually used.
|
|
|
|
Fixes #227.
|
|
|
|
Fixes #200.
|
|
Add DAV1D_/Dav1d prefix to everything.
|
|
|
|
|
|
Fixes #192, an use-of-uninitialized-value in resize_c with
clusterfuzz-testcase-minimized-dav1d_fuzzer-5657755306688512. Credits to
oss-fuzz.
|
|
|
|
ruy and rux are in unit_size dimensions, whereas lr_mask are in sb128
dimensions, and unit_idx is in sb64 dimensions, so one can't be derived
from the other. Instead, remove ruy/rux and derive unit_idx and sb_idx
directly from the block positions aligned to the unit_size.
|
|
Fixes #172.
|
|
Fixes #112.
|
|
Fix #96
|