xpra icon
Bug tracker and wiki

Encoding Statistics

Warning: this page is quite out of date now.

As part of encoding improvements (mostly in #419), we have collected encoding performance statistics for 4 still test pictures using the current crop of codec code (pre-release version 0.13).

These encodings are also used when a video encoding is selected as primary encoding, this is done to optimize bandwidth and CPU usage: video encodings require a full frame every time, so we use still picture encodings for smaller regions and for automatic lossless refresh.

Mode Desktop 2560x1600Browser 1920x1080Diagram 640x800Small Alpha 64x48
EncodingCompressorPresetQualitySpeedMPixels/scompMPixels/scompMPixels/scompMPixels/scomp
pngPIL (old)optimized 0 1.6 8.1
pngPIL (old) 100 6.5 8.5
pngPIL 100 11.6 10.0 16.1 3.1 14.6 5.0 6.0 30.1
png/PPIL 100 21.8 4.7 17.2 9.0 23.9 3.9 2.2 14.0
png/LPIL 100 24.3 3.8 31.1 1.4 29.7 2.6 7.6 4.7
webpPIL 0 5.5 0.5 6.3 0.5 5.9 0.7 0.4 13.4
webpPIL 50 5.1 2.1 6.0 1.1 5.6 1.6 0.4 16.7
webpPIL 100 4.3 6.2 5.9 3.1 5.3 4.3 0.4 28.8
jpegPILoptimized 0 71.0 0.5 68.5 0.4 80.6 0.5 16.6 3.2
jpegPIL 50 86.0 3.1 68.1 1.9 68.2 2.5 12.7 8.8
jpegPILoptimized 100 48.0 10.8 56.8 5.7 56.0 7.7 9.5 26.1
jpegPIL 100 72.0 13.0 58.4 5.7 56.5 7.7 8.4 26.1
rgblz4 100 224.0 15.0 497.0 4.3 526.0 6.9 76.7 56.0
rgbzlib 50 21.0 9.1 30.2 2.5 27.8 3.1 11.3 39.4
webppython-webm 0 6.0 0.8 6.7 0.5 6.2 0.7 0.5 13.4
webppython-webm 50 5.3 2.1 6.5 1.1 5.7 1.6 0.6 16.7
webppython-webm 100 0.3 4.8 1.0 0.7 0.7 1.6 0.1 25.0
webpCythonTEXT 0 100 18.6 0.6 19.4 0.4 18.9 0.6 1.5 2.9
webpCythonTEXT 50 100 15.5 2.7 17.7 1.5 16.6 2.2 1.2 11.9
webpCythonTEXT 99 100 12.6 6.7 15.2 3.3 13.9 4.6 0.8 29.7
webpCythonTEXT + lossless 100 0 0.1 4.9 0.6 0.7 0.3 1.6 0.0 24.7
webpCythonTEXT + lossless 100 100 2.3 5.9 27.8 1.3 27.2 1.9 1.5 26.9

Notes

  • all tests were performed on an AMD FX-8150 (octa-core 3GHz AMD CPU)
  • video encodings are not included, and should generally be preferred to the single picture encodings shown here
  • this shows both speed in mega pixels per second (higher is better), and compression ratio (lower is better)
  • Low quality at low speed doesn't really make much sense, so some values have been omitted
  • changing the webp preset does not affect speed or output size much, it probably does affect the perceived picture quality (seems best to stick with TEXT to ensure that text remains readable)
  • The new webp encoder seems to perform about the same with speeds >50%, only low speed is really slow, and lossless is unbearably slow (it can take more than 30 seconds to encode a single frame using lossless + low speed!)
  • quality is not the same for each encoder, some have lossless modes others not, etc..
  • for data showing the differences between the various png compression types (HUFFMAN_ONLY, FIXED, RLE, FILTERED, DEFAULT), see ticket:419#comment:6


You can find a much more detailed analysis (but which is limited to lossy formats in YUV420 colourspace mode...) here: Lossy Compressed Image Formats Study

Last modified 6 months ago Last modified on 01/12/17 11:41:05