-
Notifications
You must be signed in to change notification settings - Fork 100
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Experiment: consider switching from aom to dav1d+rav1e/svt-av1 #97
Comments
Is there any performance difference between aom and dav1d+rav1e? |
@grantbeattie The latter are sold on performance and the former is the reference implementation, which would historically suggest that there will be, however these libraries are all under heavy development so this is probably one of those "it depends" situations. |
I would like to comment that latest rav1e has some issue: xiph/rav1e#2662 Due to this, we had to revert to |
rav1e v0.5.0 was just released, which contains a fix for the issue mentioned above. The slightly dangerous As for the Windows builds, the |
Any progress on this? |
In addition to build difficulties, strukturag/libheif#554 ( FWIW, librsvg is also considering using |
libaom has made a number of performance improvements during the last year e.g. encoding is ~2x faster, and I've not seen any recent comparative benchmarks against dav1d or rav1e. Adding dav1d for decoding with libaom compiled for encode-only increases the resultant binary size by ~6%. We will revisit this, perhaps later in the year. |
Libaom still seems slow on decoding front. Can you let me know switches to disable encoding and how to build dav1d? May be we can give it a try for decoding. |
Do we know of any current workarounds? I'm currently running into issues beyond 10bit.
|
The dav1d decoder provides a meson build script and is straightforward to cross-compile.
https://github.com/lovell/sharp-libvips/tree/dav1d
The rav1e encoder does not provide build tooling and relies on
cargo cinstall
, which is not that simple to get working with cross-compilation. It causes rust symbol conflicts as we also statically-link the rust-based librsvg, so requires the slightly dangerous-Wl,--allow-multiple-definition
linker flag.https://github.com/lovell/sharp-libvips/tree/rav1e
Could consider the C-based svt-av1 as the encoder, perhaps the svt-av1-psy fork that prefers SSIM over PSNR - see lovell/sharp#4276
Also need to determine by how much the shared library binary file size would increase, if any, with separate decoder/encoder.
The text was updated successfully, but these errors were encountered: