diff --git a/CMakeLists.txt b/CMakeLists.txt index d8c37bbc..73e137e2 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -4,7 +4,7 @@ project(uvg266 LANGUAGES C CXX HOMEPAGE_URL https://github.com/ultravideo/uvg266 DESCRIPTION "An open-source VVC encoder licensed under 3-clause BSD" -VERSION 0.4.1 ) +VERSION 0.8.0 ) option(BUILD_SHARED_LIBS "Build using shared uvg266 library" ON) diff --git a/README.md b/README.md index 5f98145b..c5c10388 100644 --- a/README.md +++ b/README.md @@ -201,6 +201,7 @@ Compression tools: - full: Full ALF --(no-)rdoq : Rate-distortion optimized quantization [enabled] --(no-)rdoq-skip : Skip RDOQ for 4x4 blocks. [disabled] + --(no-)dep-quant : Use dependent quantization. [disabled] --(no-)signhide : Sign hiding [disabled] --rd : Intra mode search complexity [0] - 0: Skip intra if inter is good enough. @@ -232,14 +233,14 @@ Compression tools: - 2: + 1/2-pixel diagonal - 3: + 1/4-pixel horizontal and vertical - 4: + 1/4-pixel diagonal - --pu-depth-inter - : Inter prediction units sizes [0-3] - - 0, 1, 2, 3: from 64x64 to 8x8 + --pu-depth-inter - : Maximum and minimum split depths where + inter search is performed 0..8. [0-3] - Accepts a list of values separated by ',' for setting separate depths per GOP layer (values can be omitted to use the first value for the respective layer). - --pu-depth-intra - : Intra prediction units sizes [1-4] - - 0, 1, 2, 3, 4: from 64x64 to 4x4 + --pu-depth-intra - : Maximum and minimum split depths where + intra search is performed 0..8. [1-4] - Accepts a list of values separated by ',' for setting separate depths per GOP layer (values can be omitted to use the first @@ -247,6 +248,29 @@ Compression tools: --ml-pu-depth-intra : Predict the pu-depth-intra using machine learning trees, overrides the --pu-depth-intra parameter. [disabled] + --mtt-depth-intra : Depth of mtt for intra slices 0..3.[0] + --mtt-depth-intra-chroma : Depth of mtt for chroma dual tree in + intra slices 0..3.[0] + --mtt-depth-inter : Depth of mtt for inter slices 0..3.[0] + All MTTs are currently experimental and + require disabling some avx2 optimizations. + --max-bt-size : maximum size for a CU resulting from + a bt split. A singular value shared for all + or a list of three values for the different + slices types (intra, inter, intra-chroma) + can be provided. [64, 64, 32] + --max-tt-size : maximum size for a CU resulting from + a tt split. A singular value shared for all + or a list of three values for the different + slices types (intra, inter, intra-chroma) + can be provided. [64, 64, 32] + --intra-rough-granularity : How many levels are used for the + logarithmic intra rough search. 0..4 + With 0 all of the modes are checked + in a single level, 1 checks every second + mode is checked on first level and then + second level checks the modes surrounding + the three best modes. [2] --(no-)combine-intra-cus: Whether the encoder tries to code a cu on lower depth even when search is not performed on said depth. Should only @@ -257,7 +281,6 @@ Compression tools: This is mostly for debugging and is not guaranteed to produce sensible bitstream or work at all. [disabled] - --tr-depth-intra : Transform split depth for intra blocks [0] --(no-)bipred : Bi-prediction [disabled] --cu-split-termination : CU split search termination [zero] - off: Don't terminate early. @@ -294,6 +317,9 @@ Compression tools: --(no-)mip : Enable matrix weighted intra prediction. --(no-)lfnst : Enable low frequency non-separable transform. [disabled] + --(no-)isp : Enable intra sub partitions. [disabled] + Experimental, requires disabling some avx2 + optimizations. --mts : Multiple Transform Selection [off]. (Currently only implemented for intra and has effect only when rd >= 2) diff --git a/doc/uvg266.1 b/doc/uvg266.1 index bf358974..71a2b605 100644 --- a/doc/uvg266.1 +++ b/doc/uvg266.1 @@ -1,4 +1,4 @@ -.TH UVG266 "8" "July 2022" "uvg266 v0.4.1" "User Commands" +.TH UVG266 "1" "September 2023" "uvg266 v0.8.0" "User Commands" .SH NAME uvg266 \- open source VVC encoder .SH SYNOPSIS @@ -252,6 +252,9 @@ Rate\-distortion optimized quantization [enabled] \fB\-\-(no\-)rdoq\-skip Skip RDOQ for 4x4 blocks. [disabled] .TP +\fB\-\-(no\-)dep\-quant +Use dependent quantization. [disabled] +.TP \fB\-\-(no\-)signhide Sign hiding [disabled] .TP @@ -306,16 +309,16 @@ Fractional pixel motion estimation level [4] \- 4: + 1/4\-pixel diagonal .TP \fB\-\-pu\-depth\-inter \- -Inter prediction units sizes [0\-3] - \- 0, 1, 2, 3: from 64x64 to 8x8 +Maximum and minimum split depths where + inter search is performed 0..8. [0\-3] \- Accepts a list of values separated by ',' for setting separate depths per GOP layer (values can be omitted to use the first value for the respective layer). .TP \fB\-\-pu\-depth\-intra \- -Intra prediction units sizes [1\-4] - \- 0, 1, 2, 3, 4: from 64x64 to 4x4 +Maximum and minimum split depths where + intra search is performed 0..8. [1\-4] \- Accepts a list of values separated by ',' for setting separate depths per GOP layer (values can be omitted to use the first @@ -326,6 +329,41 @@ Predict the pu\-depth\-intra using machine learning trees, overrides the \-\-pu\-depth\-intra parameter. [disabled] .TP +\fB\-\-mtt\-depth\-intra +Depth of mtt for intra slices 0..3.[0] +.TP +\fB\-\-mtt\-depth\-intra\-chroma +Depth of mtt for chroma dual tree in + intra slices 0..3.[0] +.TP +\fB\-\-mtt\-depth\-inter +Depth of mtt for inter slices 0..3.[0] + All MTTs are currently experimental and + require disabling some avx2 optimizations. +.TP +\fB\-\-max\-bt\-size +maximum size for a CU resulting from + a bt split. A singular value shared for all + or a list of three values for the different + slices types (intra, inter, intra\-chroma) + can be provided. [64, 64, 32] +.TP +\fB\-\-max\-tt\-size +maximum size for a CU resulting from + a tt split. A singular value shared for all + or a list of three values for the different + slices types (intra, inter, intra\-chroma) + can be provided. [64, 64, 32] +.TP +\fB\-\-intra\-rough\-granularity +How many levels are used for the + logarithmic intra rough search. 0..4 + With 0 all of the modes are checked + in a single level, 1 checks every second + mode is checked on first level and then + second level checks the modes surrounding + the three best modes. [2] +.TP \fB\-\-(no\-)combine\-intra\-cus: Whether the encoder tries to code a cu on lower depth even when search is not performed on said depth. Should only @@ -339,9 +377,6 @@ This is mostly for debugging and is not guaranteed to produce sensible bitstream or work at all. [disabled] .TP -\fB\-\-tr\-depth\-intra -Transform split depth for intra blocks [0] -.TP \fB\-\-(no\-)bipred Bi\-prediction [disabled] .TP @@ -411,6 +446,11 @@ Enable matrix weighted intra prediction. Enable low frequency non\-separable transform. [disabled] .TP +\fB\-\-(no\-)isp +Enable intra sub partitions. [disabled] +Experimental, requires disabling some avx2 +optimizations. +.TP \fB\-\-mts Multiple Transform Selection [off]. (Currently only implemented for intra