Add a new QOIZ codec (UUID 229cc6dc-a860-4b52-b4d8-053a22b3892b) for
SetSurface command. The PDU data contains the same data as the QOI
codec, with zstd compression.
Some benchmarks showing interesting results (using ironrdp/perfenc)
QOI: 10s user CPU, 96.20% compression
QOIZ: 11s user CPU, 99.76% compression
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
The Quite OK Image format ([1]) losslessly compresses images to a
similar size of PNG, while offering 20x-50x faster encoding and 3x-4x
faster decoding.
Add a new QOI codec (UUID 4dae9af8-b399-4df6-b43a-662fd9c0f5d6) for
SetSurface command. The PDU data contains the QOI header (14 bytes) +
data "chunks" and the end marker (8 bytes).
Some benchmarks showing interesting results (using ironrdp/perfenc)
Bitmap: 74s user CPU, 92.5% compression
RemoteFx (lossy): 201s user CPU, 96.72% compression
QOI: 10s user CPU, 96.20% compression
Note: the "qoicoubeh" crate is my own fork of "qoi-rust" project. The
plan is to switch back to it as soon as the maintainer resume its
activites (https://github.com/aldanor/qoi-rust/issues/14).
[1]: https://qoiformat.org/
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Make some internal APIs publicly visible thanks to "visibility" when
compiling with the "__bench" feature.
("testsuite-core" also learned "__bench", because fast_path.rs is a
shared file)
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>