heifsave: expose libheif/aom auto_tiles feature #4191
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
I realise we don't want to expose every single possible underlying encoder feature, however given the relatively poor encoding times of AVIF images this one feels like the most useful addition to libaom I've seen in a while.
The
auto_tiles
property allows the aom encoder to determine the optimum tile count based on the output dimensions and available threads, which in my testing seriously improves multi-core utilisation. Elapsed time is almost halved in some cases. There are claims it reduces memory usage but I've not found much evidence of this yet. The cost of all this is very slightly increased file sizes, mostly from the additional metadata.The upstream PR for this was strukturag/libheif#1330 (requires libaom v3.10.0+ and the forthcoming libheif v1.18.3+).