September 19, 2017

Up to 10% Improvement in Compression Efficiency of the libvpx VP9 Encoder

by Ranjit Kumar Tulabandu (Principal Engineer, Media Server Technologies)

Preliminary results of algorithmic improvements in libvpx to improve quality.

In a recent blog, we outlined an approach to improve the compression efficiency of the libvpx VP9 encoder, and identified four key areas of improvement:

Temporal complexity based enhanced quantization decisions | Improved spatial adaptive quantization
Scene based modelling | Support for cinematic effects

We’ve been working on most of the above areas and the initial results show up to 10% improvement in compression efficiency.

Let us take a quick look at the results.

Content type

The content test cases include the following types and span between 10 and 580 seconds in duration:

  • Mixed television content (multiple genres)
  • Animation content
  • Movie content (multiple genres)
  • Low resolution videos

The content test cases include the following types and span between 10 and 580 seconds in duration:

libvpx build and settings

We started our algorithmic improvements on the following libvpx build:

Commit id: ‘6fed5692d2bf4b5ea54ac9e02261d7a097d88dbc’ in libvpx github (dated 30th March 2017)

We measured results across both two pass and single pass encoding modes. Here are the corresponding high level configurations:

  1. 2 Pass Config 1: ‘’good”, – –cpu-used=1 preset, ARF enabled, 2 second key frame interval
  2. 2 Pass Config 2: ‘’good’, – –cpu-used=5 preset, ARF enabled, 2 second key frame interval
  3. Single Pass Config: ‘’good”, – –cpu-used=5 preset, ARF enabled, 2 second key frame interval, lag = 2 seconds

Quality measurement method

Our analysis was based on BD rate improvements. The BD rate was derived using average MSE based PSNR metric, based on four operating points.

Summary of preliminary results

The content test cases include the following types and span between 10 and 580 seconds in duration:

  • Identical improvements in both the two pass configurations – i.e., an improvement of ~5% in BD-rate on an average across the entire content set
  • Higher improvements particularly on the mixed television content set, averaging ~9% across the subset that included television drama, news and sports
  • Similar overall improvement of ~5% across the entire content set, with the addition of look ahead processing to the single pass encoding mode

We are continuing to characterize the results better and will carry out a more comprehensive exercise after completing all the algorithmic improvements. The preliminary results validate our approach and put us on track to bring libvpx on par with popular implementations of competing video standards.

Reach out to us at mkt@ittiam.com for more insights into the improvements or evaluation of the improved version.

Check out our solution page – Ittiam VP9 Encoder

Read our blog on Accelerating the Speed of VP9 Video Encoder