Releases: ultravideo/uvg266
v0.8.1
Service release
Adds selection of VVC tools to the Veryslow (and Placebo) presets.
What's Changed
- Fix small problems in Dependent Quantization code (d008a00)
- Fix for MTS bitcost estimation (634cf72)
- Add selection of VVC tools to the presets (74451cf)
- Update flow control to print CTU stats to stats file when the stats-file-prefix is set by @randomze in #15
- Remove incorrect AVX2 define (e5e32d6)
New Contributors
Full Changelog: v0.8.0...v0.8.1
v0.8.0
Feature release
Add ISP, MTT, DQ, IBC, and avx2 optimizations for transforms and DQ.
Changelog
- Add experimental support for intra sub partition (ISP) requires disabling some of the AVX2 optimizations, see e32cf4f
- Add experimental support for multi type tree (MTT) for intra slices, similarly to ISP requires disabling some AVX2 optimizations e32cf4f
- Support for dependent quantization (DQ)
- Experimental support for intra block copy (IBC) not guaranteed to have positive impact in most cases, primarly intented for screen content coding
- AVX2 optimizations for non-square transform blocks
- AVX2 optimizations for DQ
- Simplify the dual-tree implementation and enable 2 height chroma block with dual tree
- Fix several issues in rate distortion cost calculation
Full Changelog: v0.4.1...v0.8.0
v0.4.1
Service release
Fix several issues introduced in v0.4.0 that were not caught by CI tests
Changelog
- Fix jccr cost calculation (3de4b99)
- Force lfnst off when trying blocks with
--combine-intra
(1f6a62e) - Implement satd scaling on AVX2 code (42adfb5)
- Better condition when performing chroma intra RD search
- Fix transform-skip and lfnst
Full Changelog: v0.4.0...v0.4.1
BD-Rate and speedup improvements
- v0.3.0: --preset veryslow -p 1
- v0.4.1: --preset veryslow -p 1
PSNR BD-BR | SSIM BD-BR | SPEEDUP | |
---|---|---|---|
Total | 0.3 % | 0.9 % | 1.46× |
hevc-A | 0.0 % | 0.8 % | 1.47× |
hevc-B | 0.1 % | 0.6 % | 1.49× |
hevc-C | 0.1 % | 0.8 % | 1.53× |
hevc-D | 0.0 % | 0.9 % | 1.43× |
hevc-E | 0.2 % | 0.6 % | 1.40× |
hevc-F | 1.2 % | 1.6 % | 1.44× |
- v0.3.0: --preset veryslow -p 1 --mts intra --mip --mrl --jccr --cclm --rd 3
- v0.4.1: --preset veryslow -p 1 --mts intra --mip --mrl --jccr --cclm --rd 3 --lfnst --dual-tree
PSNR BD-BR | SSIM BD-BR | SPEEDUP | |
---|---|---|---|
Total | -11.5 % | -11.3 % | 0.94× |
hevc-A | -8.7 % | -8.7 % | 0.95× |
hevc-B | -7.2 % | -7.4 % | 0.97× |
hevc-C | -12.7 % | -12.3 % | 0.93× |
hevc-D | -9.3 % | -9.7 % | 0.94× |
hevc-E | -10.6 % | -11.2 % | 0.93× |
hevc-F | -19.7 % | -18.1 % | 0.93× |
- v0.4.1: --preset veryslow -p1
- v0.4.1: --preset veryslow -p1 --dual-tree
class | PSNR BD-BR | SSIM BD-BR | SPEEDUP |
---|---|---|---|
dual-tree | -0.8 % | -0.9 % | 1.09× |
hevc-A | -1.0 % | -1.1 % | 1.09× |
hevc-B | -0.9 % | -0.8 % | 1.11× |
hevc-C | -0.7 % | -0.9 % | 1.09× |
hevc-D | -0.6 % | -0.7 % | 1.07× |
hevc-E | -1.1 % | -1.3 % | 1.12× |
hevc-F | -0.7 % | -0.9 % | 1.07× |
- v0.4.1: --preset veryslow -p1
- v0.4.1: --preset veryslow -p1 --lfnst
class | PSNR BD-BR | SSIM BD-BR | SPEEDUP |
---|---|---|---|
lfnst | 0.2 % | 0.1 % | 0.78× |
hevc-A | 0.0 % | -0.2 % | 0.74× |
hevc-B | 0.1 % | 0.0 % | 0.77× |
hevc-C | 0.3 % | 0.2 % | 0.77× |
hevc-D | 0.4 % | 0.4 % | 0.81× |
hevc-E | 0.2 % | 0.0 % | 0.76× |
hevc-F | 0.2 % | 0.1 % | 0.80× |
v0.4.0
Feature release
Add LFNST, dual-tree and improve rd-optimization for all intra tools.
Changelog
- Add support for low frequency non-separable transform (LFNST)
- Add support for dual tree in intra slices
- Change the rough search for intra at least temporarily
- Transform-skip for chroma
- Matrix intra prediction and multi reference line improve RD perfomance when rough search is enabled
- Scaling of satd DC component (c16f42e)
- Fix MSVC warnings about type conversion and signed/unsigned comparison (fb17bbc)
- Keep cabac states up-to-date for all non-loopfilter contexts
CI and Build improvements
- Add test for consistency of cabac state (835b7fa)
- Add test for dual tree (f0be187)
- Enable edit and continue on visual studio debug mode (6536808) (156ccbe)
- Add appveyor CI support (4a80e71)
Full Changelog: v0.3.0...v0.4.0
BD-Rate and speedup improvements
There were several issues that slipped through CI tests, the RD results are available in release v0.4.1
v0.3.0
Service release
Fixes many small bugs found by the community after the initial public release, thank you all for the reports!
Changelog
- Inter search improvements (96b00ff)
- Region-of-Interest feature unification (763ad3f)
--force-inter
to force all-inter block in inter frames (85d1a54)--combine-intra-cus
for controlling if larger intra CUs are considered when not in selected range (f1f0033)- Inter RD cost fixes, more accurate
--rd=3
costs (6918ab8) - Various Intra search improvements (153afc6)
- Fixed 4x4 delta QPs (a23f1c7)
- Rate control fix for
--gop=0
(b4a3d54) - Print version info every time uvg266 is run (20ecb12)
- Fix Y4M parsing with piped input (5ea9132)
- AMVP candidate rounding fix (7a22b94)
- Conformance window fixed when width/height not divisible by 8 (c71de0e)
- Fixed HRD output headers for timing info (700f526)
CI and Build issues fixed
- Add
dist
anddistcheck
(d3e8ce0) - Install targets simplified (be90897)
- Github actions asan test now allowed to fail external symbols check (23f6e1b)
- Test conformance window in CI (c2d82c0)
- Add
-msse4.1
flag tosrc/strategies/sse41
(befdf9c) - Fix some spacing and line breaks in help text to keep line widths below 80 chars by @LigH-de in #7
- Fix some compiler warnings by @skal65535 in #6
New Contributors
- @LigH-de made their first contribution in #7
- @skal65535 made their first contribution in #6
Full Changelog: v0.2.3...v0.3.0
v0.2.3
First public uvg266 release!
uvg266 is a VVC encoder based on our Kvazaar HEVC encoder, with the original parallelization and many optimizations reused.
Most of the original HEVC tools are ready to use with Intra and Inter coding supported, and with additional VVC tools like increased intra angles, ALF and MTS already completely working. More tools are being actively developed and optimized for BD-rate.
Build system was replaced with CMake recently so please report any issues.
The Intra part of the encoder is described in an open-access journal article accepted to IEEE Transactions on Consumer Electronics with some initial performance tests, but currently uvg266 performs much better (we are preparing for some benchmarks).
Note The current presets do not use any of the new tools, you might want to enable them manually for testing!
For any help with uvg266, please make an issue and we will try to answer.