Compression Benchmarks

Benchmark Summary

Cher Ami scores with best compression ratio on all probed lyrics of European anthems; also best on bilingual text and chat with emoji; second-best on Asian anthems; and third on content with severe duplication. All in all, 18 best compression ratios out of 24 comparisons against the most capable compressors in this category.

Lossless Compression Results

All sizes are in bytes, the smaller the better. The best-compressed size for each text is in bold.

Web-Based compressors
Text
in UTF-8 BOM
Text Size
in UTF-8
LZW
reported
size
BZip2
reported
size
Deflate
reported
size
Brotli
reported
size
Cher Ami
transform.
report
anthem001_USA.txt449307295.264241236
anthem01_Bulgaria.txt30419016917615198
anthem02_France.txt263212226186202168
anthem03_Spain.txt7670104736950
anthem04_Russia.txt1008544414475409365
anthem05_IndiaDevanagari.txt194107108948981
anthem06_ChinaBopomofo.txt413362318309294290
anthem07_Greek.txt361228205203180173
bilingual01_LUnion.txt7369105727431
multilingual01_ChatEmoji.txt216177202188182109
multilingual02_FriendlyEmoji.txt614487475443412430
duplication01_1000spaces.txt10005145––22
TextText SizeLZWBZip2DeflateBrotliCher Ami

The web-based compressors don’t provide downloadable results but their compression reports are easier to reproduce. Click on ‘reported’ in order to navigate to the corresponding website and retest if need be.

File-based Compressors
Text
in UTF-8 BOM
Text Size
in UTF-8
BZip2
packed
size
PPMd
packed
size
Zstd
packed
size
Brotli
packed
size
Cher Ami
transform.
report
anthem001_USA.txt449287239291278236
anthem01_Bulgaria.txt30417114919918898
anthem02_France.txt263220169206201168
anthem03_Spain.txt7610663857450
anthem04_Russia.txt1008404391521478365
anthem05_IndiaDevanagari.txt1941076810711081
anthem06_ChinaBopomofo.txt413302254349298290
anthem07_Greek.txt361199173230197173
bilingual01_LUnion.txt7310564867831
multilingual01_ChatEmoji.txt216205156204191109
multilingual02_FriendlyEmoji.txt614463393495439430
duplication01_1000spaces.txt1000447221122
TextText SizeBZip2PPMdZstdBrotliCher Ami

For the file-based compressors, only the logical sizes of the compressed text (a.k.a. “packed size”) is taken into account, not the gross archive sizes, and not their file-size occupations on the disk.


Legend

Text — the uncompressed UTF-8 BOM text files, downloadable.
Text Size — the uncompressed size of the text files in UTF-8 bytes.
BZip2, PPMd, Zstd, Brotli, Deflate, LZW, Cher Ami — compressed sizes in bytes, named after the method/algorithm/protocol.

Methods, Implementations, Settings

Deflate, web-based

Implementation: MultiUtil.com.
Output encoding: Base64.

Brotli, web-based

Implementation: MultiUtil.com.
Output encoding: Base64.

BZip2, web-based

Implementation: TxtWizard.net.
Output encoding: Base64.

LZW, web-based

Implementation: PlanetCalc.com.
Initial dictionary: Encoding, UTF-8. Otherwise, a custom dictionary per text should be considered part of the payload and added to the compressed size.
Output encoding: Binary/Radix-2.

Brotli, file-based

Implementation: PeaZip ver. 7.9.0.
Compression level: 9.

Zstd, file-based

Implementation: PeaZip ver. 7.9.0.
Compression level: 19.

PPMd, file-based

Implementation: 7-Zip ver. 18.05 (x64).
Archive format: 7z.
Compression level: Ultra.
Dictionary size: 4 MB.
Word size 32.
Non-solid block size.
Gave similar ratios to compression.

BZip2, file-based

Implementation: 7-Zip ver. 18.05 (x64).
Archive format: bzip2.
Compression level: Ultra.
Dictionary size: 400 KB.

Honorable Mentions

UHARC GUI ver. 4.0.0.2, archive format uha, dictionary size 4 MB, no media – results similar to the presented PPMd file-based compression of 7-Zip.

7-Zip ver. 19.00 (x64), archive format xz, method LZMA2:12, dictionary size 64 MB, word size 64, non-solid block size – worst compression ratios, but still popular and preferred by many for other compression inputs.

FAQ

Why does Cher Ami stand out so much?

It’s due to design. Cher Ami doesn’t reuse any third-party compression software or dictionaries. While all other tools and implementations are bound by their compatibility with legacy algorithms, structures, and protocols, this app isn’t. It practically introduces a unique approach in everything it does in the field of data compression complying only with some faultless mathematical ideas among all relevant research.
The purposes of other algorithms and dictionaries also matter. Some may claim better results on longer or linguistically improper texts which are out of scope for the purpose of Cher Ami. Claims…

How were the text samples chosen?

Cher Ami is aimed at delivering good compression on short messages in any language. Therefore, it was essential to pick wording that is natively common in some of the world’s most popular languages. The used sentences from national anthems added a bit of cultural significance on top of that. Emoji is also important for messaging nowadays.

Are there other benchmarks of Cher Ami?

None validated by me. Benchmarking the compression of Cher Ami is an activity well covered with its EULA. I’m not yet making free editions for this purpose, nor other investments in similar PR. It may take a lot more time for this compressor to gain the benchmarking popularity of freeware competitors that have been around for decades.

Which other benchmarks give relevant results for comparison?

Every reliable third-party benchmark on up to 1K code points of UTF-16 (any Unicode sequence) would be interesting. My best advice is to try your own text with the listed web-based compressors and then with Cher Ami. I wouldn’t compare compression ratios from significantly different text lengths or languages.
The most popular third-party benchmarks focus primarily on much longer texts in English which are out of scope for the purpose of this app. Even the Squash Compression Benchmark and their smallest test file (grammar.lsp) are inapplicable for such comparison. Another disappointment may arise from the fact that most other publications seldom consider the inner workings of the compressors or don’t disclose all setup details in a consumer-reproducible manner.

How are compression ratios calculated from these results?

The usual way:
(Compression ratio) = (uncompressed size) / (compressed size)
(Compression %) = [(uncompressed size) – (compressed size)] / (uncompressed size)
However, some tools may introduce different labeling of the same numbers.

Do file system and storage type matter?

No. Cher Ami offers the option to copy the compressed contents and doesn’t save them to the file system. For the file-based implementations above, only the logical sizes of the compressed text (a.k.a. “packed size”) are taken into account. Some headers, metadata blocks, information about compression methods, CRC, file names, and timestamps were ignored in favor of the third-party compressors. This way odds and handicaps originating from the file system, cluster size, fragmentation, and storage type don’t affect the presented results. For example, the PPMd compressed archive of multilingual02_FriendlyEmoji.txt has a downloadable archive size of 563 bytes while only the packed size of 393 bytes is listed for the comparison.

Why not API compression benchmark?

Cher Ami doesn’t offer a public compression API. While API benchmarking may be easier for me, retesting it is considered harder for the target audience and even impossible for some users of the app. Manual reproducibility is of higher importance than automation in this article.

Is it worth writing a new compressor from scratch?

No, but in my case it is. My first proof of concept for the compression was back in 2004. So, I already had my own prototype of an ASCII compressor since my childhood and didn’t have to tackle third-party copyrights in order to develop derivative works from it. In the end, this happened to be not only more efficient but a more effective solution as well.

Disclaimer.

This is neither advertising nor a commercial offering. Cher Ami is provided as a signed installation package, strictly on an ‘as is’ and ‘as available’ basis. This page does not create any obligations for the author.