Libaom AV1 cpu-used Parameter Explained

The -cpu-used parameter in the libaom AV1 encoder wrapper controls the trade-off between encoding speed and compression efficiency. By adjusting this setting, users dictate how exhaustively the encoder searches for optimal compression paths using Rate-Distortion Optimization (RDO). Lower values force the encoder to evaluate more compression tools and partition possibilities, yielding higher quality per bit at the cost of significantly longer encode times, while higher values employ heuristics to speed up processing at the expense of compression density.

The Role of -cpu-used

In the standard libaom AV1 implementation, -cpu-used accepts integer values generally ranging from 0 to 8 (with values up to 11 supported in specific real-time configurations). Despite its name, the parameter does not adjust how many CPU cores or threads the encoder uses; thread allocation is handled separately by parameters like -threads and -row-mt. Instead, -cpu-used acts as a speed-versus-efficiency preset.

How Compression Efficiency is Adjusted

When video is compressed with AV1, the encoder must make thousands of decisions per frame regarding how to divide images, predict motion, and transform residuals. The -cpu-used setting directly governs the depth and complexity of these algorithms:

Efficiency Across the Value Spectrum