2

Ich kann nicht herausfinden, was genau ist Streaming-Modus von modernen Komprimierung/Dekompressionsalgorithmen (zB ZStandard oder LZ4) angeboten und wie kann ich es ausnutzen.Streaming-Modus vs Block-Modus

Als Beispiel angenommen, ich habe 4x16KB Datei. Ich kann (einzeln) jede Datei komprimieren und 4xDifferentCompressedLength Dateien erhalten. Allerdings könnte ich alle 4 Dateien zusammen komprimieren (sie sequentiell senden, oder?) Mit Streaming-Modus und erhalten 1xCompressedLength und erwarten, dass die Kompressionsrate besser sein.

Kann ich nur die dritte Datei dekomprimieren (sagen), ohne alle vorherigen Dateien zu dekomprimieren? Machen Streaming-Modus Abhängigkeit zwischen den Dateien, die ich angehängt habe?

Antwort

2

Ja, Streaming führt die Abhängigkeit zwischen den Dateien ein. In Ihrem Beispiel müsste die Dekodierung file3 zuerst file1 und dann file2 dekodieren.

Beachten Sie auch, dass Daten als angehängt angezeigt werden und keine spezifischen Markierungen zwischen den Dateien enthalten sind. Man müsste also wissen, wo jede Datei beginnt und endet, wenn es wichtig ist. Manchmal ist es implizit (z. B. feste 16 KB Größe), manchmal kann es von Daten selbst (spezifisches Ende der Markierung) abgezogen werden, manchmal benötigt es zusätzliche Metadaten. Alles hängt von der Anwendung ab.

Sie sind richtig, dass das Verdichtungsverhältnis von C(4xFiles) erwartet wird als 4xC(File) besser zu sein, vor allem, wenn die 4-Dateien etwas verwandt sind (zum Beispiel, wenn sie alle Textdateien).

+1

Danke (Yann). Nette Eigenschaft, um Daten mit einem besseren Verdichtungsverhältnis zu übertragen (zu strömen!). – xmas79

Verwandte Themen