LZ-Archivformat

LZ ist ein Archivformat, das für eine effiziente Datenkomprimierung entwickelt wurde und hauptsächlich in Umgebungen verwendet wird, in denen die Reduzierung des Speicherplatzes und die Optimierung der Datenübertragung von entscheidender Bedeutung sind. Dieses Format nutzt den Lempel-Ziv (LZ)-Komprimierungsalgorithmus und ist für seine Fähigkeit bekannt, große Datenmengen mit Schwerpunkt auf Geschwindigkeit und Ressourceneffizienz zu komprimieren. LZ-Archive erfreuen sich besonders großer Beliebtheit in Szenarien, die schnelle Komprimierungs- und Dekomprimierungszyklen erfordern, wodurch sie sich sowohl für die Softwareverteilung als auch für die Echtzeit-Datenverarbeitung eignen.

Allgemeine LZ-Archivinformationen

LZ-Archive sind komprimierte Dateiformate, die den Lempel-Ziv-Algorithmus als primäre Komprimierungsmethode verwenden. LZ-Archive sind für ihre Geschwindigkeit und Einfachheit bekannt und priorisieren eine effiziente Komprimierung gegenüber maximalen Komprimierungsraten. Dadurch eignen sie sich für Anwendungen, die eine schnelle Komprimierung und Dekomprimierung erfordern, wie z. B. Echtzeit-Datenverarbeitung oder eingebettete Systeme. Die Erweiterung .lz ist die häufigste Erweiterung für LZ-komprimierte Dateien. Obwohl LZ-Archive eine schnelle Komprimierung bieten, sind sie aufgrund ihrer Einschränkungen in Bezug auf Komprimierungsverhältnis und Metadaten weniger für die Archivierung großer Datenmengen oder die Beibehaltung von Dateiattributen geeignet. Moderne Komprimierungsformate wie ZIP, gzip und XZ haben LZ aufgrund ihrer verbesserten Funktionen und Leistung in vielen Anwendungen abgelöst.

Geschichte des LZ-Archivs

  • 1977: Der Grundstein für die LZ-Komprimierung wurde von den israelischen Informatikern Abraham Lempel und Jacob Ziv gelegt, die den LZ77-Algorithmus einführten. Dies war der erste weit verbreitete Algorithmus zur verlustfreien Datenkomprimierung, bei dem ein Schiebefenster zum Komprimieren wiederholter Datenmuster verwendet wurde.
  • 1978: Lempel und Ziv führten den LZ78-Algorithmus ein, eine Verbesserung gegenüber LZ77, der einen wörterbuchbasierten Ansatz nutzte. Dieser Algorithmus verbesserte die Komprimierungseffizienz weiter und inspirierte viele nachfolgende Komprimierungstechniken.
  • 1984: Terry Welch baute auf dem LZ78-Algorithmus auf, um LZW (Lempel-Ziv-Welch) zu entwickeln, das durch seine Verwendung im Unix-Komprimierungsbefehl und im GIF-Bildformat populär wurde. LZW war einer der ersten weit verbreiteten Komprimierungsalgorithmen in kommerziellen Anwendungen.
  • 1990er Jahre: Die Weiterentwicklung der Varianten des LZ-Algorithmus führte zur Entwicklung fortschrittlicherer Komprimierungsmethoden wie LZMA (Lempel-Ziv-Markov-Kettenalgorithmus), die in Formaten wie 7z und XZ verwendet werden. die höhere Kompressionsverhältnisse bieten.
  • 2000er Jahre: LZ-basierte Komprimierungstechniken, insbesondere LZW, wurden in viele Dateiformate und Protokolle integriert, obwohl einige, wie GIF, auf patentbezogene Probleme stießen, die ihre Verwendung beeinflussten.
  • 2010er Jahre: LZ-basierte Algorithmen, insbesondere LZMA und seine Varianten, bleiben in moderner Komprimierungssoftware von grundlegender Bedeutung und sorgen für ein Gleichgewicht zwischen hoher Komprimierungseffizienz und angemessener Leistung. Sie werden weiterhin häufig in der Softwareverteilung, Archivierung und Datenspeicherung eingesetzt.
  • 2020er Jahre: Das LZ-Format ist weiterhin eine zuverlässige und effiziente Wahl für die Komprimierung, insbesondere in Umgebungen, in denen Geschwindigkeit und Einfachheit im Vordergrund stehen.

Eigenschaften des LZ-Archivs

  • Einzeldateikomprimierung: Komprimiert normalerweise eine einzelne Datei in ein .lz-Archiv.
  • LZW-Algorithmus: Verwendet die Lempel-Ziv-Welch-Komprimierungsmethode.
  • Fehlende Metadaten: Im Archiv werden nur begrenzte oder keine Metadaten über die Originaldatei gespeichert.
  • Einfachheit: Die unkomplizierte Struktur des Formats trägt zu seinen schnellen Komprimierungs- und Dekomprimierungsgeschwindigkeiten bei.

Das LZ-Archivformat folgt einer einfachen Struktur, bei der die Geschwindigkeit Vorrang vor umfangreichen Funktionen hat. Hier ist die Grundstruktur des LZ-Archivs wichtig, um mit alten komprimierten Dateien zu arbeiten und die Entwicklung von Komprimierungstechnologien zu bewerten.

Komprimierungsmethoden für LZ-Archive

Das LZ-Archivformat nutzt den Lempel-Ziv-Algorithmus (LZ), der für seine Einfachheit und Geschwindigkeit bekannt ist, was ihn zur bevorzugten Wahl in Szenarien macht, in denen schnelle Komprimierung und Dekomprimierung von entscheidender Bedeutung sind. Nachfolgend finden Sie eine Übersicht über die mit LZ verbundenen Komprimierungsmethoden:

  1. Lempel-Ziv-Algorithmus: Der Kern des LZ-Archivformats basiert auf dem LZ-Algorithmus, einer verlustfreien Komprimierungsmethode, die Redundanz in Daten erkennt und beseitigt, indem wiederholte Sequenzen durch kürzere Codes ersetzt werden. Der LZ-Algorithmus funktioniert durch den Aufbau eines Wörterbuchs von Sequenzen, während er die Daten verarbeitet, was eine effiziente Komprimierung großer und sich wiederholender Datensätze ermöglicht. Diese Methode ist besonders effektiv in Szenarien, in denen Datenmuster konsistent und vorhersehbar sind.
  2. Sliding-Window-Technik: Der LZ-Algorithmus verwendet typischerweise einen Sliding-Window-Mechanismus, bei dem sich ein Fenster fester Größe über den Eingabedatenstrom bewegt, um wiederholte Sequenzen zu finden. Dieser Ansatz ermöglicht es dem Algorithmus, eine überschaubare Wörterbuchgröße beizubehalten und dennoch eine erhebliche Komprimierung zu erreichen. Das gleitende Fenster trägt entscheidend dazu bei, die Komprimierungseffizienz mit der Speichernutzung in Einklang zu bringen, wodurch die LZ-Methode für Systeme mit begrenzten Ressourcen geeignet ist.
  3. Prüfsumme und Fehlererkennung: Während sich das LZ-Format auf die Komprimierung konzentriert, kann es auch grundlegende Prüfsummenmechanismen wie CRC32 enthalten, um die Integrität der komprimierten Daten sicherzustellen. Diese Prüfsummen helfen dabei, Fehler zu erkennen, die während der Speicherung oder Übertragung auftreten könnten, und stellen so sicher, dass die dekomprimierten Daten korrekt und unbeschädigt bleiben.
  4. Optionale Verbesserungen: In einigen Implementierungen kann die LZ-Komprimierungsmethode durch zusätzliche Techniken wie Run-Length-Codierung (RLE) oder Delta-Codierung erweitert werden, wodurch die Größe der komprimierten Daten weiter reduziert werden kann. Diese optionalen Verbesserungen werden auf bestimmte Datentypen innerhalb des Archivs angewendet und ermöglichen eine effizientere Komprimierung bestimmter Inhaltstypen, z. B. Bilder oder ausführbaren Code.

.lz Unterstützte Vorgänge

  • Vollständige Extraktion: Extrahieren Sie ganz einfach alle Dateien aus einem .lz-Archiv und bewahren Sie dabei die Integrität und Struktur des Originalinhalts.
  • Selektive Extraktion: Zielt auf bestimmte Dateien in einem .lz-Archiv ab und ermöglicht so eine präzise Datenwiederherstellung oder selektive Dekomprimierung basierend auf Dateinamen oder anderen Kriterien.
  • Datenkomprimierung: Erstellen Sie .lz-Archive aus Dateien und Verzeichnissen und nutzen Sie dabei die effiziente LZMA2-Komprimierungsmethode, um die Dateigröße erheblich zu reduzieren.
  • Benutzerdefinierte Komprimierungseinstellungen: Passen Sie die Komprimierungsstufen und andere Parameter an, um ein Gleichgewicht zwischen Komprimierungsgeschwindigkeit und Dateigröße herzustellen und den Prozess an Ihre spezifischen Anforderungen anzupassen.

Aspose.Zip bietet umfassende Unterstützung für die Arbeit mit .lz-Archiven und erleichtert so die Verwaltung komprimierter Dateien. Folgendes können Sie tun:

Struktur der .LZ-Datei

Das Lzip-Archivformat ist auf Effizienz und Geschwindigkeit ausgelegt und nutzt eine Schichtstruktur, die eine schnelle Komprimierung und Dekomprimierung ermöglicht. Das Lzip-Archiv besteht aus einem oder mehreren Mitgliedern, die nacheinander im Archiv gespeichert werden. Die Struktur eines Lzip-Mitglieds umfasst die folgenden Komponenten:

  1. Blockheader:

    • Magic Number: Eine eindeutige Kennung, die den Anfang des Lzip-Archivs signalisiert und sicherstellt, dass die Datei als gültiges Lzip-Format erkannt wird.
    • Versionsinformationen: Gibt die verwendete Lzip-Version an, was dazu beiträgt, die weitere Kompatibilität mit verschiedenen Dekomprimierungstools sicherzustellen. Jetzt hat es den Wert „1“.
    • Wörterbuchgröße: Dieses Feld enthält Informationen zu den Details der LZMA-Komprimierung, die für den kommenden Datenblock verwendet wird.
  2. Komprimierter Datenblock:

    • Komprimierte Nutzlast: Der Kern des LZ-Archivs. Dieser Abschnitt enthält den komprimierten Datenstrom. Der Lempel-Ziv-Markov-Kettenalgorithmus verarbeitet die Originaldaten in eine Reihe von Codes, die wiederholte Sequenzen darstellen, wodurch die Dateigröße erheblich reduziert wird. Derselbe Komprimierungsalgorithmus wird in den Formaten xz und 7z unterstützt.
  3. Blockfußzeile:

    • Prüfsumme/Hash: Eine Prüfsumme (z. B. CRC32) oder ein kryptografischer Hash (z. B. SHA-256) ist enthalten, um die Integrität der komprimierten Daten zu überprüfen. Dadurch wird sichergestellt, dass das Archiv während der Übertragung oder Speicherung nicht manipuliert oder beschädigt wurde.
    • Datengröße: Die Größe eines Teils der in diesem Block komprimierten Originaldatei.
    • Memder-Größe: ein Teil des verteilten Index mit komprimierter Größe und Offset, der das unabhängige Extrahieren von Blöcken ermöglicht.

Da das Lzip-Format nicht mehrere Dateien komprimiert und seine Metadaten nicht speichert, wird es häufig mit dem kombinierten Dienstprogramm tar verwendet.

Struktur der .LZ-Datei

Popularität des LZ-Formats

Das LZ-Archivformat, das auf dem Lempel-Ziv-Komprimierungsalgorithmus basiert, ist eine grundlegende Technologie in der Welt der Datenkomprimierung. Seine weitverbreitete Akzeptanz wird auf seine Einfachheit, Effizienz und die Fähigkeit zurückgeführt, signifikante Komprimierungsraten zu erreichen, insbesondere für Daten mit sich wiederholenden Mustern. LZ-basierte Komprimierungsmethoden wurden in verschiedene Dateiformate und Komprimierungstools integriert, was das LZ-Format zu einer vielseitigen und wesentlichen Komponente bei Datenspeicher-, Übertragungs- und Archivierungsprozessen macht. Obwohl neuere Komprimierungsalgorithmen wie LZMA und Brotli entstanden sind, bleibt das LZ-Format aufgrund seines ausgewogenen Verhältnisses von Komprimierungsgeschwindigkeit und Effektivität relevant.
In UNIX- und Linux-Umgebungen wird die LZ-Komprimierung häufig in Verbindung mit anderen Tools wie tar, zum Erstellen komprimierter Archive für die Softwareverteilung und Datensicherung. Durch die Integration in zahlreiche Komprimierungsprogramme ist der kontinuierliche Einsatz auf verschiedenen Plattformen, einschließlich Windows und macOS, gewährleistet. Obwohl das LZ-Format möglicherweise nicht so weit verbreitet ist wie andere Komprimierungsformate wie ZIP oder GZIP, ist sein Einfluss auf die Datenkomprimierungstechnologie unbestreitbar und es wird weiterhin in verschiedenen Szenarien eingesetzt, in denen eine schnelle und zuverlässige Komprimierung erforderlich ist.

Beispiele für die Verwendung von LZ-Archiven

Dieser Abschnitt enthält Codebeispiele, die zeigen, wie LZ-Archive mit C#, Java und Python.NET komprimiert und geöffnet werden. Diese Beispiele nutzen Bibliotheken und Klassen wie LzipArchive zur Verwaltung von LZ-Dateien und veranschaulichen den praktischen Einsatz der LZ-Komprimierung in modernen Programmierumgebungen.

Compresses a file into .LZ archive using the LzipArchive class in C#.

    using (LzipArchive archive = new LzipArchive())
    {
        archive.SetSource("data.bin");
        archive.Save("data.bin.lz");
    }

Extract LZip Archive using C#

    using (FileStream sourceLzipFile = File.Open("data.bin.lz", FileMode.Open))
    {
        using (FileStream extractedFile = File.Open("data.bin", FileMode.Create))
        {
            using (LzipArchive archive = new LzipArchive(sourceLzipFile))
            {
                archive.Extract(extractedFile);
            }
        }
    }

Compresses a file into .LZ archive using the LzipArchive class in Java.

    try (LzipArchive archive = new LzipArchive()) {
        archive.setSource("data.bin");
        archive.save("data.bin.lz");
    }

Extract LZip Archive using Java

    try (FileInputStream sourceLzipFile = new FileInputStream("data.bin.lz")) {
        try (FileOutputStream extractedFile = new FileOutputStream("data.bin")) {
            try (LzipArchive archive = new LzipArchive(sourceLzipFile)) {
                archive.extract(extractedFile);
            }
        }
    } catch (IOException ex) {
    }

Compresses a file into .LZ archive using the LzipArchive class using Python.Net

    with aspose.zip.lzip.LzipArchive() as archive:
        archive.set_source("data.bin")
        archive.save("data.bin.lz")

Extract Lzip Archive using Python.Net

    with io.FileIO("data.bin.lz", "rb") as source_lzip_file:
        with io.FileIO("data.bin", "x") as extracted_file:
            with aspose.zip.lzip.LzipArchive(source_lzip_file) as archive:
                archive.extract(extracted_file)

Aspose.Zip offers individual archive processing APIs for popular development environments, listed below:

Aspose.Zip for .NETAspose.Zip via JavaAspose.Zip via Python.NET

Weitere Informationen

Die Leute haben gefragt

1. Wird das LZ-Archivformat auf allen Betriebssystemen unterstützt?

Das LZ-Archivformat wird auf mehreren Plattformen unterstützt, darunter UNIX, Linux, Windows und macOS. Während es am häufigsten mit UNIX-ähnlichen Umgebungen in Verbindung gebracht wird, sind Tools und Bibliotheken, die LZ-Archive verarbeiten, für alle wichtigen Betriebssysteme verfügbar.

2. Welche Vorteile bietet die Nutzung von LZ-Archiven?

LZ-Archive sind für ihre Effizienz bei der Komprimierung von Daten mit sich wiederholenden Mustern bekannt und bieten ein gutes Gleichgewicht zwischen Komprimierungsgeschwindigkeit und Reduzierung der Dateigröße. Sie sind einfach zu implementieren und daher eine zuverlässige Wahl für schnelle Datenkomprimierungsanforderungen, insbesondere bei der Softwareverteilung, Datensicherung und Netzwerkübertragung.

3. Kann ich mehrere Dateien in ein einziges LZ-Archiv komprimieren?

Das LZ-Format wird typischerweise zum Komprimieren einzelner Dateien verwendet. Um mehrere Dateien zu komprimieren, müssen Sie sie zunächst zu einem Archiv zusammenfassen (z. B. einem Tarball mit tar) und dann die resultierende Archivdatei mit LZ-Komprimierung komprimieren. Dieser Prozess ist in UNIX- und Linux-Umgebungen üblich.