Skip to content

v2.0.0

Compare
Choose a tag to compare
@Arizer Arizer released this 22 Apr 16:36
· 362 commits to master since this release

Kvazaar 2.0 has been released!

Since 1.3, the encoder has received such improvements and fixes that make this one of our most significant releases so far. It is only fitting to call this version 2.0.

Here are some of the more interesting changes in this release:

Important for MinGW users

AVX2 optimizations are no longer enabled for MinGW GCC due to stack alignment issues.
Use Clang for AVX2 support and therefore better performance.

Highlights

  • Updated presets
  • Updated GOP definitions using QP offset model.
    • There is now even longer hierarchical GOP --gop=16
  • Much faster and improved bipred
  • Alternative and better rate control algorithm, optimal bit allocation (--rc-algorithm oba)
  • Variance adaptive quantization (--vaq)

Features

  • Option to set QP offset for intra frames (--intra-qp-offset, automatical by default)
  • Zero-coeff-rdo is now configurable (--zero-coeff-rdo)
  • Optional intra frame analysis for rate control (--intra-bits)
  • Optional machine learning based depth constraints for intra search (--ml-pu-depth-intra)
  • PU depths are now separately configurable for each GOP layer

User Interface

  • Report bitrate and some kind of (cumulative) average QP

Optimizations:

  • More AVX2 opimizations for SAO
  • More AVX2 opimizations for transforms
  • More AVX2 opimizations for intra prediction
  • AVX2 strategy for variance calculation

...and several other improvements and fixes

BD-Bitrate

Average BD-Bitrate compared with v1.3:

class 0-uf 1-sf 2-vf 3-fr 4-f 5-m 6-s 7-sr 8-vs
hevc-A -20.2 % -21.4 % -28.8 % -24.8 % -21.4 % -23.5 % -19.1 % -11.3 % -15.0 %
hevc-B -35.1 % -34.5 % -34.7 % -31.8 % -28.6 % -29.5 % -21.8 % -11.4 % -16.2 %
hevc-C -21.0 % -23.6 % -31.3 % -27.7 % -22.4 % -23.5 % -19.8 % -12.9 % -18.0 %
hevc-D -22.5 % -26.6 % -37.4 % -33.2 % -26.6 % -25.3 % -18.3 % -10.8 % -15.1 %
hevc-E -35.9 % -34.9 % -30.9 % -29.8 % -28.0 % -30.4 % -25.7 % -19.0 % -20.2 %
hevc-F -18.6 % -17.7 % -21.3 % -19.9 % -17.5 % -15.2 % -17.6 % -26.8 % -37.0 %
Total -26.0 % -26.9 % -31.1 % -28.2 % -24.4 % -24.6 % -20.3 % -15.4 % -20.6 %

Speedup

Average speedup compared with v1.3 on an AMD Ryzen 7 1700X machine:

class 0-uf 1-sf 2-vf 3-fr 4-f 5-m 6-s 7-sr 8-vs
hevc-A 0.90x 0.75x 0.80x 0.78x 0.93x 1.11x 1.21x 1.23x 0.95x
hevc-B 0.96x 0.81x 0.83x 0.82x 0.97x 1.15x 1.26x 1.29x 0.95x
hevc-C 0.94x 0.78x 0.73x 0.70x 0.83x 1.12x 1.22x 1.26x 0.86x
hevc-D 1.02x 0.83x 0.78x 0.76x 0.90x 1.16x 1.24x 1.28x 0.93x
hevc-E 0.95x 0.84x 0.91x 0.89x 1.06x 1.45x 1.56x 1.42x 1.16x
hevc-F 0.96x 0.85x 0.84x 0.84x 0.94x 1.17x 1.29x 1.25x 1.00x
Total 0.96x 0.81x 0.81x 0.80x 0.93x 1.18x 1.29x 1.29x 0.97x