Skip to content
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

aom: improve AVIF encoding performance by ~2x #496

Merged
merged 1 commit into from Jul 12, 2021

Conversation

lovell
Copy link
Contributor

@lovell lovell commented May 7, 2021

Available from aom v3.1.0, the new "all intra" usage mode is now considered its best setting for still images.

From what I can tell, it uses a single pass and skips the keyframe logic (i.e. everything is intra-frame), resulting in significantly fewer memory allocations in addition to almost halving CPU time. The compression ratio is nearly identical, sometimes better, and the worst case I've found so far was 0.8% larger.

https://aomedia.googlesource.com/aom/+/refs/tags/v3.1.0

libavif has already adopted this as the default - see AOMediaCodec/libavif#539

Homebrew currently provides aom v3.1.0 so the macOS CI job will test this.

@lovell
Copy link
Contributor Author

lovell commented May 8, 2021

The two CI failures appear to be unrelated to this change (e.g. the fuzzer problem looks like a Python version mismatch).

I rebased against master to pick up a recent CI fix and all tasks are now passing.

Available from aom v3.1.0, this usage mode is considered the
default setting for still images.

It uses a single pass and removes all keyframe logic, resulting
in significantly fewer memory allocations and halves CPU time.

libavif has already adopted this as the default.
@adityapatadia
Copy link
Contributor

@farindk this is super good enhancement. Tried in production and works like a charm. Can we merge it?

@farindk farindk merged commit 4ec2ac3 into strukturag:master Jul 12, 2021
@farindk
Copy link
Contributor

farindk commented Jul 12, 2021

Great. Thank you.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants