-
Zstd neue eierlegende Wollmilchsau
Autor: Gaius Baltar 23.08.22 - 15:50
Durch das neuartige Kodierungsverfahren deckt Zstd einen deutlich breiteren Einsatzbereich ab als bisherige Kompressionsverfahren. Musste man früher noch stark aufteilen zwischen effizienter und schneller Kompression (ersteres mit Deflate, später LZMA – letzteres mit LZO, LZ4), vereinigt Zstd beides und macht es einfacher, auf wechselnde Anforderungen zu reagieren, indem nur ein paar Kompressionsparameter konfiguriert werden.
Nach oben hin (Richtung bessere Kompressionsrate) bietet Zstd nun für vergleichbare Raten spürbar schnellere Kompression im Vergleich zu Deflate/Zlib oder gar LZMA (genutzt in 7-Zip, Lzip, xz), bei außerdem stark verbesserter Dekompressionsgeschwindigkeit. Gerade letzteres ist ein Vorteil, wenn Daten einmal komprimiert, aber häufig verteilt und dekomprimiert werden müssen. Allein das kann schon die klassischen Verfahren in vielen Fällen direkt ersetzen.
Nach unten hin schafft Zstd vergleichbarer Geschwindigkeiten, wenn es nicht so sehr auf Effizienz, sondern auf Tempo ankommt. Hier ist lediglich die Dekompressionsrate (noch? sie skaliert nicht mit mehreren Threads) im Nachteil gegenüber LZO, LZ4 usw.
Insgesamt ist das auch ein Siegeszug der Mathematik. Zstd verwendet viele Tricks, ein paar Neuerungen und fasst dies in einem möglichst effizienten Datenformat zusammen. Wer mehr darüber wissen möchte, auch über verlustfreie Kompression im Allgemeinen, dem sei dieses „Tutorial“ empfohlen. Ich fand es sehr interessant, musste aber (ohne weitere Information) beim eigentlichen Kompressionsverfahren (Finite State Entropy) wegen Verständnisproblemen aufgeben. Mathematik ist schon was geiles …
https://nigeltao.github.io/blog/2022/zstandard-part-1-concepts.html



