[cleanup] Change mentions of Kvazaar to uvg266 in README.md and remove crypto parameters

This commit is contained in:
Marko Viitanen 2021-07-27 09:50:39 +03:00
parent 164b1a4027
commit b412a96820
7 changed files with 83 additions and 118 deletions

109
README.md
View file

@ -1,25 +1,25 @@
Kvazaar
uvg266
=======
An open-source VVC encoder licensed under LGPLv2.1
Join channel #kvazaar_hevc in Freenode IRC network to contact us.
Join channel [#ultravideo](https://web.libera.chat/#ultravideo) in [Libera.Chat](https://libera.chat/) IRC network to contact us.
Kvazaar is still under development. Speed and RD-quality will continue to improve.
uvg266 is still under development. Speed and RD-quality will continue to improve.
http://ultravideo.cs.tut.fi/#encoder for more information.
- Linux/Mac [![Build Status](https://travis-ci.org/ultravideo/kvazaar.svg?branch=master)](https://travis-ci.org/ultravideo/kvazaar)
- Windows [![Build status](https://ci.appveyor.com/api/projects/status/88sg1h25lp0k71pu?svg=true)](https://ci.appveyor.com/project/Ultravideo/kvazaar)
- Linux/Mac [![Build Status](https://travis-ci.org/ultravideo/uvg266.svg?branch=master)](https://travis-ci.org/ultravideo/uvg266)
- Windows [![Build status](https://ci.appveyor.com/api/projects/status/88sg1h25lp0k71pu?svg=true)](https://ci.appveyor.com/project/Ultravideo/uvg266)
## Table of Contents
- [Using Kvazaar](#using-kvazaar)
- [Using uvg266](#using-uvg266)
- [Example:](#example)
- [Parameters](#parameters)
- [LP-GOP syntax](#lp-gop-syntax)
- [Presets](#presets)
- [Kvazaar library](#kvazaar-library)
- [Compiling Kvazaar](#compiling-kvazaar)
- [uvg266 library](#uvg266-library)
- [Compiling uvg266](#compiling-uvg266)
- [Required libraries](#required-libraries)
- [Autotools](#autotools)
- [Autotools on MinGW](#autotools-on-mingw)
@ -28,24 +28,24 @@ http://ultravideo.cs.tut.fi/#encoder for more information.
- [Docker](#docker)
- [Visualization (Windows only)](#visualization-windows-only)
- [Paper](#paper)
- [Contributing to Kvazaar](#contributing-to-kvazaar)
- [Contributing to uvg266](#contributing-to-uvg266)
- [Code documentation](#code-documentation)
- [For version control we try to follow these conventions:](#for-version-control-we-try-to-follow-these-conventions)
- [Testing](#testing)
- [Unit tests](#unit-tests)
- [Code style](#code-style)
## Using Kvazaar VVC
## Using uvg266 VVC
### Debugging:
./kvazaar -i BQMall_832x480_60.yuv -o BQMall.266 -n 10 --no-sao --threads=0 --no-wpp -p 1 --rd=0 --fast-residual-cost=32 --no-deblock > debug.txt
./uvg266 -i BQMall_832x480_60.yuv -o BQMall.266 -n 10 --no-sao --threads=0 --no-wpp -p 1 --rd=0 --fast-residual-cost=32 --no-deblock > debug.txt
./DecoderAnalyserApp -b BQMall.266 --TraceFile=trace.txt --TraceRule=D_COMMON,D_CABAC,D_SYNTAX,D_NALUNITHEADER,D_HEADER:poc>=0 -o rec.yuv
### Example:
kvazaar --input BQMall_832x480_60.yuv --output out.hevc
uvg266 --input BQMall_832x480_60.yuv --output out.vvc
The mandatory parameters are input and output. If the resolution of the input file is not in the filename, or when pipe is used, the input resolution must also be given: ```--input-res=1920x1080```.
@ -55,10 +55,10 @@ Speed and compression quality can be selected with ```--preset```, or by setting
### Parameters
[comment]: # (BEGIN KVAZAAR HELP MESSAGE)
[comment]: # (BEGIN UVG266 HELP MESSAGE)
```
Usage:
kvazaar -i <input> --input-res <width>x<height> -o <output>
uvg266 -i <input> --input-res <width>x<height> -o <output>
Required:
-i, --input <filename> : Input file
@ -101,18 +101,6 @@ Options:
- md5: 56 bytes
--(no-)psnr : Calculate PSNR for frames. [enabled]
--(no-)info : Add encoder info SEI. [enabled]
--crypto <string> : Selective encryption. Crypto support must be
enabled at compile-time. Can be 'on' or 'off' or
a list of features separated with a '+'. [off]
- on: Enable all encryption features.
- off: Disable selective encryption.
- mvs: Motion vector magnitudes.
- mv_signs: Motion vector signs.
- trans_coeffs: Coefficient magnitudes.
- trans_coeff_signs: Coefficient signs.
- intra_pred_modes: Intra prediction modes.
--key <string> : Encryption key [16,213,27,56,255,127,242,112,
97,126,197,204,25,59,38,30]
--stats-file-prefix : A prefix used for stats files that include
bits, lambda, distortion, and qp for each ctu.
These are meant for debugging and are not
@ -182,6 +170,13 @@ Video structure:
--(no-)vaq <integer> : Enable variance adaptive quantization with given
strength, in range 1..20. Recommended: 5.
[disabled]
--chroma-qp-in : List of input values used for mapping the luma
QP into chroma qp. [17,27,32,44]
--chroma-qp-out : List of output values used for mapping the luma
QP into chroma qp. These two lists have to be
same length, start with same value, and can
contain maximum 16 or 36 - starting value
elements. [17,27,32,44]
Compression tools:
--(no-)deblock <beta:tc> : Deblocking filter. [0:0]
@ -347,7 +342,7 @@ Deprecated parameters: (might be removed at some point)
-w, --width <integer> : Use --input-res.
-h, --height <integer> : Use --input-res.
```
[comment]: # (END KVAZAAR HELP MESSAGE)
[comment]: # (END UVG266 HELP MESSAGE)
### LP-GOP syntax
@ -400,30 +395,30 @@ where the names have been abbreviated to fit the layout in GitHub.
| max-merge | 5 | 5 | 5 | 5 | 5 | 5 | 5 | 5 | 5 | 5 |
## Kvazaar library
## uvg266 library
See [kvazaar.h](src/kvazaar.h) for the library API and its
documentation.
When using the static Kvazaar library on Windows, macro `KVZ_STATIC_LIB`
When using the static uvg266 library on Windows, macro `KVZ_STATIC_LIB`
must be defined. On other platforms it's not strictly required.
The needed linker and compiler flags can be obtained with pkg-config.
## Compiling Kvazaar
## Compiling uvg266
If you have trouble regarding compiling the source code, please make an
[issue](https://github.com/ultravideo/kvazaar/issues) about in Github.
[issue](https://github.com/ultravideo/uvg266/issues) about in Github.
Others might encounter the same problem and there is probably much to
improve in the build process. We want to make this as simple as
possible.
### Autotools
Depending on the platform, some additional tools are required for compiling Kvazaar with autotools.
Depending on the platform, some additional tools are required for compiling uvg266 with autotools.
For Ubuntu, the required packages are `automake autoconf libtool m4 build-essential yasm`. Yasm is
optional, but some of the optimization will not be compiled in if it's missing.
Run the following commands to compile and install Kvazaar.
Run the following commands to compile and install uvg266.
./autogen.sh
./configure
@ -437,7 +432,7 @@ It is recommended to use Clang instead of GCC in MinGW environments. GCC also wo
CC=clang ./configure
to build Kvazaar using Clang.
to build uvg266 using Clang.
### OS X
- Install Homebrew
@ -452,54 +447,14 @@ to build Kvazaar using Clang.
in %PATH%
### Docker
This project includes a [Dockerfile](./Dockerfile), which enables building for Docker. Kvazaar is also available in the Docker Hub [`ultravideo/kvazaar`](https://hub.docker.com/r/ultravideo/kvazaar/)
Build using Docker: `docker build -t kvazaar .`
Example usage: `docker run -i -a STDIN -a STDOUT kvazaar -i - --input-res=320x240 -o - < testfile_320x240.yuv > out.265`
For other examples, see [Dockerfile](./Dockerfile)
### Visualization (Windows only)
Compiling `kvazaar_cli` project in the `visualizer` branch results in a Kvazaar executable with visualization enabled.
Additional Requirements: [`SDL2`](https://www.libsdl.org/download-2.0.php), [`SDL2-ttf`](https://www.libsdl.org/projects/SDL_ttf/).
Directory `visualizer_extras` has to be added into the same directory level as the kvazaar project directory. Inside should be directories `include` and `lib` found from the development library zip packages.
`SDL2.dll`, `SDL2_ttf.dll`, `libfreetype-6.dll`, and `zlib1.dll` should be placed in the working directory (i.e. the folder the `kvazaar.exe` is in after compiling the `kvazaar_cli` project/solution) when running the visualizer. The required `.dll` can be found in the aforementioned `lib`-folder (`lib\x64`).
Note: The solution should be compiled on the x64 platform in visual studio.
Optional font file `arial.ttf` is to be placed in the working directory, if block info tool is used.
## Paper
Please cite [this paper](https://dl.acm.org/citation.cfm?doid=2964284.2973796) for Kvazaar:
```M. Viitanen, A. Koivula, A. Lemmetti, A. Ylä-Outinen, J. Vanne, and T. D. Hämäläinen, “Kvazaar: open-source HEVC/H.265 encoder,” in Proc. ACM Int. Conf. Multimedia, Amsterdam, The Netherlands, Oct. 2016.```
Or in BibTex:
```
@inproceedings{Kvazaar2016,
author = {Viitanen, Marko and Koivula, Ari and Lemmetti, Ari and Yl\"{a}-Outinen, Arttu and Vanne, Jarno and H\"{a}m\"{a}l\"{a}inen, Timo D.},
title = {Kvazaar: Open-Source HEVC/H.265 Encoder},
booktitle = {Proceedings of the 24th ACM International Conference on Multimedia},
year = {2016},
isbn = {978-1-4503-3603-1},
location = {Amsterdam, The Netherlands},
url = {http://doi.acm.org/10.1145/2964284.2973796},
}
```
## Contributing to Kvazaar
## Contributing to uvg266
We are happy to look at pull requests in Github. There is still lots of work to be done.
### Code documentation
You can generate Doxygen documentation pages by running the command
"doxygen docs.doxy". Here is a rough sketch of the module structure:
![Kvazaar module hierarchy](https://github.com/ultravideo/kvazaar/blob/master/doc/kvazaar_module_hierarchy.png)
![uvg266 module hierarchy](https://github.com/ultravideo/uvg266/blob/master/doc/uvg266_module_hierarchy.png)
### For version control we try to follow these conventions:
@ -532,7 +487,7 @@ You can generate Doxygen documentation pages by running the command
file used by the encoder. There is no Makefile as of yet.
- The unit tests use "greatest" unit testing framework. It is included
as a submodule, but getting it requires the following commands to be
run in the root directory of kvazaar:
run in the root directory of uvg266:
git submodule init
git submodule update

View file

@ -139,7 +139,6 @@
</ItemDefinitionGroup>
<ItemGroup>
<ClCompile Include="..\..\src\constraint.c" />
<ClCompile Include="..\..\src\extras\crypto.cpp" />
<ClCompile Include="..\..\src\extras\libmd5.c" />
<ClCompile Include="..\..\src\input_frame_buffer.c" />
<ClCompile Include="..\..\src\kvazaar.c" />
@ -200,7 +199,6 @@
<ClInclude Include="..\..\src\checkpoint.h" />
<ClInclude Include="..\..\src\constraint.h" />
<ClInclude Include="..\..\src\cu.h" />
<ClInclude Include="..\..\src\extras\crypto.h" />
<ClInclude Include="..\..\src\extras\libmd5.h" />
<ClInclude Include="..\..\src\gop.h" />
<ClInclude Include="..\..\src\image.h" />

View file

@ -232,7 +232,6 @@
<Filter>Optimization\strategies\avx2</Filter>
</ClCompile>
<ClCompile Include="..\..\src\extras\libmd5.c" />
<ClCompile Include="..\..\src\extras\crypto.cpp" />
<ClCompile Include="..\..\src\strategies\generic\encode_coding_tree-generic.c">
<Filter>Optimization\strategies\generic</Filter>
</ClCompile>
@ -254,6 +253,7 @@
<ClCompile Include="..\..\src\alf.c">
<Filter>Reconstruction</Filter>
</ClCompile>
<ClCompile Include="..\..\src\strategies\strategies-encode.c" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\..\src\bitstream.h">
@ -446,7 +446,6 @@
<Filter>Optimization\strategies\avx2</Filter>
</ClInclude>
<ClInclude Include="..\..\src\extras\libmd5.h" />
<ClInclude Include="..\..\src\extras\crypto.h" />
<ClInclude Include="..\..\src\threadwrapper\include\pthread.h">
<Filter>Threadwrapper</Filter>
</ClInclude>

View file

@ -1,8 +1,8 @@
.TH KVAZAAR "1" "January 2021" "kvazaar v2.0.0" "User Commands"
.TH KVAZAAR "1" "July 2021" "uvg266 v2.0.0" "User Commands"
.SH NAME
kvazaar \- open source HEVC encoder
uvg266 \- open source VVC encoder
.SH SYNOPSIS
\fBkvazaar \fR\-i <input> \-\-input\-res <width>x<height> \-o <output>
\fBuvg266 \fR\-i <input> \-\-input\-res <width>x<height> \-o <output>
.SH DESCRIPTION
.TP
\fB\-i\fR, \fB\-\-input <filename>
@ -85,22 +85,6 @@ Calculate PSNR for frames. [enabled]
\fB\-\-(no\-)info
Add encoder info SEI. [enabled]
.TP
\fB\-\-crypto <string>
Selective encryption. Crypto support must be
enabled at compile\-time. Can be 'on' or 'off' or
a list of features separated with a '+'. [off]
\- on: Enable all encryption features.
\- off: Disable selective encryption.
\- mvs: Motion vector magnitudes.
\- mv_signs: Motion vector signs.
\- trans_coeffs: Coefficient magnitudes.
\- trans_coeff_signs: Coefficient signs.
\- intra_pred_modes: Intra prediction modes.
.TP
\fB\-\-key <string>
Encryption key [16,213,27,56,255,127,242,112,
97,126,197,204,25,59,38,30]
.TP
\fB\-\-stats\-file\-prefix
A prefix used for stats files that include
bits, lambda, distortion, and qp for each ctu.
@ -212,6 +196,17 @@ High tier requires level 4 or higher.
Enable variance adaptive quantization with given
strength, in range 1..20. Recommended: 5.
[disabled]
.TP
\fB\-\-chroma\-qp\-in
List of input values used for mapping the luma
QP into chroma qp. [17,27,32,44]
.TP
\fB\-\-chroma\-qp\-out
List of output values used for mapping the luma
QP into chroma qp. These two lists have to be
same length, start with same value, and can
contain maximum 16 or 36 \- starting value
elements. [17,27,32,44]
.SS "Compression tools:"
.TP
@ -227,6 +222,12 @@ Sample Adaptive Offset [full]
\- edge: Edge offset only
\- full: Full SAO
.TP
\fB\-\-alf <string>
Adaptive Loop Filter [off]
\- off: ALF disabled
\- no\-cc: ALF enabled without cross component refinement
\- full: Full ALF
.TP
\fB\-\-(no\-)rdoq
Rate\-distortion optimized quantization [enabled]
.TP
@ -366,6 +367,17 @@ with lossless coding. [disabled]
.TP
\fB\-\-(no\-)tmvp
Temporal motion vector prediction [enabled]
.TP
\fB\-\-mts <string>
Multiple Transform Selection [off].
(Currently only implemented for intra
and has effect only when rd >= 2)
\- off: MTS disabled
\- intra: MTS applied only for intra blocks.
\- inter: MTS applied only for inter blocks.
\- both: MTS applied for both intra and inter blocks.
\- implicit: uses implicit MTS. Applies DST7 instead
of DCT2 to certain intra blocks.
.SS "Parallel processing:"
.TP

View file

@ -386,7 +386,7 @@ void print_help(void)
{
fprintf(stdout,
"Usage:\n"
"kvazaar -i <input> --input-res <width>x<height> -o <output>\n"
"uvg266 -i <input> --input-res <width>x<height> -o <output>\n"
"\n"
/* Word wrap to this width to stay under 80 characters (including ") *************/
"Required:\n"
@ -433,18 +433,6 @@ void print_help(void)
" - md5: 56 bytes\n"
" --(no-)psnr : Calculate PSNR for frames. [enabled]\n"
" --(no-)info : Add encoder info SEI. [enabled]\n"
" --crypto <string> : Selective encryption. Crypto support must be\n"
" enabled at compile-time. Can be 'on' or 'off' or\n"
" a list of features separated with a '+'. [off]\n"
" - on: Enable all encryption features.\n"
" - off: Disable selective encryption.\n"
" - mvs: Motion vector magnitudes.\n"
" - mv_signs: Motion vector signs.\n"
" - trans_coeffs: Coefficient magnitudes.\n"
" - trans_coeff_signs: Coefficient signs.\n"
" - intra_pred_modes: Intra prediction modes.\n"
" --key <string> : Encryption key [16,213,27,56,255,127,242,112,\n"
" 97,126,197,204,25,59,38,30]\n"
" --stats-file-prefix : A prefix used for stats files that include\n"
" bits, lambda, distortion, and qp for each ctu.\n"
" These are meant for debugging and are not\n"
@ -533,6 +521,10 @@ void print_help(void)
" - band: Band offset only\n"
" - edge: Edge offset only\n"
" - full: Full SAO\n"
" --alf <string> : Adaptive Loop Filter [off]\n"
" - off: ALF disabled\n"
" - no-cc: ALF enabled without cross component refinement\n"
" - full: Full ALF\n"
" --(no-)rdoq : Rate-distortion optimized quantization [enabled]\n"
" --(no-)rdoq-skip : Skip RDOQ for 4x4 blocks. [disabled]\n"
" --(no-)signhide : Sign hiding [disabled]\n"
@ -612,6 +604,15 @@ void print_help(void)
" --(no-)implicit-rdpcm : Implicit residual DPCM. Currently only supported\n"
" with lossless coding. [disabled]\n"
" --(no-)tmvp : Temporal motion vector prediction [enabled]\n"
" --mts <string> : Multiple Transform Selection [off].\n"
" (Currently only implemented for intra\n"
" and has effect only when rd >= 2)\n"
" - off: MTS disabled\n"
" - intra: MTS applied only for intra blocks.\n"
" - inter: MTS applied only for inter blocks.\n"
" - both: MTS applied for both intra and inter blocks.\n"
" - implicit: uses implicit MTS. Applies DST7 instead \n"
" of DCT2 to certain intra blocks.\n"
"\n"
/* Word wrap to this width to stay under 80 characters (including ") *************/
"Parallel processing:\n"

View file

@ -10,11 +10,11 @@ version="$(awk '/#define KVZ_VERSION/ { print $3 }' ../src/global.h)"
manpage_file=../doc/kvazaar.1
cat <<EOF> $manpage_file
.TH KVAZAAR "1" "$date" "kvazaar v$version" "User Commands"
.TH KVAZAAR "1" "$date" "uvg266 v$version" "User Commands"
.SH NAME
kvazaar \- open source HEVC encoder
uvg266 \- open source VVC encoder
.SH SYNOPSIS
\fBkvazaar \fR\-i <input> \-\-input\-res <width>x<height> \-o <output>
\fBuvg266 \fR\-i <input> \-\-input\-res <width>x<height> \-o <output>
.SH DESCRIPTION
EOF

View file

@ -27,11 +27,11 @@ tmpfile="$(mktemp)"
readme_file="../README.md"
{
sed '/BEGIN KVAZAAR HELP MESSAGE/q' -- "$readme_file";
sed '/BEGIN UVG266 HELP MESSAGE/q' -- "$readme_file";
printf '```\n';
../src/kvazaar --help;
printf '```\n';
sed -n '/END KVAZAAR HELP MESSAGE/{:a;p;n;ba}' -- "$readme_file";
sed -n '/END UVG266 HELP MESSAGE/{:a;p;n;ba}' -- "$readme_file";
} >> "$tmpfile"
mv -- "$tmpfile" "../README.md"