v1.3.0
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.
Edit (2.5.2020):
Here are some of the previously missing missing release notes:
Features
- Option
--fast-residual-cost
to gain speedup with less accurate mode decisions - Option
--(no-)open-gop
to choose between open and closed GOP - Option
--set-qp-in-cu
to move QP signalling into CU level for very specific use cases - Option
--scaling-list
to enable choose enable and choose scaling lists - Option
--max-merge
to set the maximum amount of merge candidates - Option
--early-skip
to speed up coding at the cost of worse results
Optimizations
- Another version of interplation filters and fractional pixel motion estimation
- AVX2 optimized sign bit hiding
- AVX2/BMI2 optimized coefficient coding
- AVX2 blending for biprediction
- Improvements and AVX2 code for certain SAD functions
Building
- ASM: marked stack non-executable
The old notes:
Features
- 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
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 |