Who is this for?

This is an introductory topic for software developers who want to build and run the VP9 and AV1 codecs on Arm servers and measure performance.

What will you learn?

Upon completion of this Learning Path, you will be able to:

  • Build the AV1 and VP9 codecs on Arm Linux.
  • Run the AV1 and VP9 codecs on Arm Linux using example videos with various resolutions and encodings.

Prerequisites

Before starting, you will need the following:

Summary

AI-assisted

This summary was drafted with an approved AI-assisted workflow and reviewed by Arm contributors before publication. Human technical review remains part of the process so the final page reflects engineering rigor, accuracy, and Arm editorial standards.

Close
?
You’ll build the AV1 and VP9 reference codecs from source on Arm Linux and run them on sample videos. You’ll compile libxaom and libvpx implementations — that have been optimized using Neon and SVE2 — with common development tools. Then, you’ll vary resolution and encoding settings to compare runs and benchmark performance.

Frequently asked questions

AI-assisted

These FAQs were drafted with an approved AI-assisted workflow and reviewed by Arm contributors before publication. Human technical review remains part of the process so the final page reflects engineering rigor, accuracy, and Arm editorial standards.

Close
?
Which source repositories should I use for AV1 and VP9?
For AV1, use the libxaom reference implementation with Arm-optimized code available on Google Git. For VP9, use the libvpx repository from the Chromium WebM project.
Do I need to pass special flags to enable Neon or SVE2 optimizations?
The implementations include optimizations for Arm Neoverse that use Neon and SVE2. You don’t need to set extra flags. Follow the build steps on an Arm Linux system to run and benchmark.
What should I expect after a successful build?
A successful build produces libraries and codec executables that run on your Arm Linux system. Confirm you can encode or decode the example videos without errors before moving on to benchmarking.
How should I choose resolutions and settings for benchmarking?
Use example videos and vary resolution and encoding parameters to create comparable test runs. Keep inputs consistent across runs and record the command lines so you can repeat and compare results.
What should I check if the build fails early?
Verify that required development tools, including CMake and the GNU compiler, are available. Ensure you can access the referenced repositories and that you’re building on an Arm Linux system.
Next