Note: The SVG converter isn't perfect and SVG is a horribly complex format. Thus, data might be converted invalidly and rendered wrong. This is a drawback of this benchmark and disturbs the data. A lot of images are still converted correctly and thus the data is still published.
The benchmark shows that the compression rate from TinyVG compared to SVG lies between 20% and 50% and thus always is a net benefit over SVG.
Dataset | File Count | Compression Rate (TVG/SVG) | Average TVG Size | Average SVG Size |
---|---|---|---|---|
Overall | 2129 | 46,38% | 3,224 | 10,194 |
Material Design Icons | 1000 | 51,47% | 220 | 428 |
Papirus | 1000 | 47,20% | 841 | 1.783 |
W3C | 115 | 53,18% | 301 | 567 |
FreeSVG | 5 | 29,72% | 12,315 | 41.435 |
Zig | 9 | 36,15% | 2.443 | 6.759 |
You can find the data evaluation here
To create a comparable data set, a script was created which does the following process:
If step 2 fails, we will skip the file as we cannot perfom comparison.
The outputs of step 1, 4 and 6 are displayed in the comparison rendering, the outputs of step 1 and 3 are compared in the benchmark.
This dataset mostly contains single-path icons with otherwise identical files. The result here documents the raw path compression.
For the benchmark, the first 1000 successfully converted icons are compared, while 437 icons were skipped in the process. This means that we have roughly 70% conversion success rate.
This icon theme was chosen as a colorful alternative to the Material Design Icons and proved itself as a wild hodgepodge of very different SVG files.
For the benchmark, the first 1000 successfully converted icons are compared, while 250 icons were skipped in the process. This means that we have roughly 80% conversion success rate.
This dataset is provided by the W3C and contains a lot of files that exercise what a SVG renderer can do. A lot of these files isn't even rendered correctly by modern day browsers.
This dataset contains some random images from freesvg.org. They were chosen by xq, the initiator of this project at his liking.
This dataset is chosen as Zig is the primary programming language TinyVG was implemented with. It contains some logos and two drawings that exercise both layering and path complexity.