Skip to content

Releases: ultravideo/uvg266

v0.8.0

27 Sep 08:04
Compare
Choose a tag to compare

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

08 Jul 12:43
Compare
Choose a tag to compare

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

01 Jul 11:21
Compare
Choose a tag to compare

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

16 Jun 08:25
Compare
Choose a tag to compare

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 and distcheck (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 to src/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

Full Changelog: v0.2.3...v0.3.0

v0.2.3

29 Apr 12:31
Compare
Choose a tag to compare

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.