Skip to content

@Arizer Arizer released this Jul 9, 2019 · 77 commits to master since this release

Time has finally come for the long overdue release v1.3 of Kvazaar!

Since it has been such a long time after our previous release, many many new features, fixes, and optimizations have been introduced and the coding efficiency is on a whole new level.

Binaries for Windows will be added starting from this release.

Pthreads is no longer needed to build and run Kvazaar on Windows. It has been replaced by our custom ThreadWrapper so Kvazaar is able to use the new c++ standard threads. ThreadWrapper is also separately available on repository https://github.com/ultravideo/ThreadWrapper and released under ISC lisence. It is not complete yet, so contributions are welcome.

Performance figures and more up-to-date release notes will be added in the following days.

Some CI tests are failing at the moment, but there should not be any critical issues.

(The following changes are rather old by now)

Features

  • Add release notes like this (#159, cf85d52)
  • Changed --rd=2 to use SSD metric for CU mode decision (662430d)
  • Changed inter search to check the cost of flushing residual to zero (75a8700)
  • Changed rectangular and asymmetric blocks to use a transform split (774c666)
  • Added diamond search ME algorithm (4e13608)
  • Enabled low delay B GOP structure with --bipred --gop=lp-g4d3t1 (7155dd0)
  • Added termination of intra search at zero residual with --intra-rdo-et (4fb1c16)

Optimization

  • Made TZ search faster and slightly better (c136044)
  • Optimized bi-prediction (69756e2)

Fixes

  • Fixed transform skip with rectangular inter blocks (fb462b2)
  • Fixed accidental inter search for 4x4 blocks (649113a)

User Interface

  • Changed options for all preset levels (f033ad0)
  • Added an option for limiting the number of steps in motion estimation with --me-steps (39ed368)
  • Added --me=dia (4e13608)
  • Added --level, --force-level and --high-tier for setting bitstream level and tier (bac0745)

Building

  • Fixed issue with struct timespec redefinition with Visual Studio 2015 and later (713e694)
  • Fixed building .asm files in Visual Studio 2017 (6be8195)
  • Fixed compatibility with crypto++ 6.0 (4b24cd0)
  • Added support for crypto++ with the name libcryptopp (411276d)
  • Dockerfile base image was updated to Ubuntu 18.04 (8380b6c)
  • Enabled -Wextra by default (ff17e0b)

Refactoring

BD-Bitrate

Average BD-Bitrate compared with v1.2:

Class 0-uf 1-sf 2-vf 3-fr 4-f 5-m 6-s 7-sr 8-vs
hevc-A -18.8 % -17.5 % -1.7 % -6.2 % -2.1 % -6.1 % -8.7 % -19.1 % -19.2 %
hevc-B -21.3 % -20.9 % -4.6 % -5.7 % -2.9 % -6.6 % -11.8 % -26.4 % -23.9 %
hevc-C -26.6 % -24.9 % -2.4 % -8.3 % -3.7 % -11.9 % -11.0 % -26.1 % -21.0 %
hevc-D -33.3 % -31.1 % -1.8 % -11.5 % -7.5 % -16.5 % -16.2 % -28.9 % -23.6 %
hevc-E -26.3 % -25.3 % -20.4 % -15.4 % -13.8 % -15.7 % -21.3 % -26.3 % -25.9 %
hevc-F -9.2 % -8.4 % -5.2 % -4.9 % -3.0 % -20.8 % -17.3 % 0.2 % 18.8 %
Total -22.7 % -21.5 % -5.7 % -8.4 % -5.3 % -13.2 % -14.4 % -21.3 % -15.4 %

Speedup

Average speedup compared with v1.2 on an Intel Xeon E5-2620 v4 machine:

class 0-uf 1-sf 2-vf 3-fr 4-f 5-m 6-s 7-sr 8-vs
hevc-A x0.88 x0.91 x1.02 x1.19 x1.37 x0.76 x0.93 x0.58 x0.36
hevc-B x0.90 x0.92 x1.08 x1.21 x1.40 x0.81 x0.99 x0.62 x0.38
hevc-C x0.87 x0.88 x0.96 x1.11 x1.24 x0.59 x0.72 x0.40 x0.26
hevc-D x0.92 x0.97 x1.03 x1.23 x1.34 x0.65 x0.74 x0.38 x0.27
hevc-E x0.97 x0.94 x1.08 x1.15 x1.34 x0.86 x1.05 x0.74 x0.54
hevc-F x0.81 x0.91 x1.01 x1.09 x1.30 x0.78 x0.88 x0.49 x0.35
Total x0.89 x0.92 x1.03 x1.17 x1.33 x0.74 x0.88 x0.53 x0.35
Assets 7
You can’t perform that action at this time.