Datenkompression von Lossless

Datenkompression von Lossless ist eine Klasse von Datenkompressionsalgorithmen, die den genauen ursprünglichen Daten erlaubt, von den komprimierten Daten wieder aufgebaut zu werden. Der Begriff lossless ist im Gegensatz zur lossy Datenkompression, die nur einer Annäherung der ursprünglichen Daten erlaubt, als Entgelt für bessere Kompressionsraten wieder aufgebaut zu werden.

Datenkompression von Lossless wird in vielen Anwendungen verwendet. Zum Beispiel wird es im SCHWIRREN-Dateiformat und im Werkzeug von Unix gzip verwendet. Es wird auch häufig als ein Bestandteil innerhalb von lossy Datenkompressionstechnologien (z.B lossless Mitte/Seite gemeinsame Stereoaufbereitung durch den LAHMEN MP3 encoder und anderen lossy Audioencoders) verwendet.

Kompression von Lossless wird in Fällen verwendet, wo es wichtig ist, dass das Original und die dekomprimierten Daten, identisch sein, oder wo Abweichungen von den ursprünglichen Daten schädlich sein konnten. Typische Beispiele sind rechtskräftige Programme, Textdokumente und Quellcode. Einige Bilddateiformate, wie PNG oder GIF, verwenden nur lossless Kompression, während andere ZANK mögen und MNG entweder lossless oder lossy Methoden verwenden kann. Lossless Audioformate werden meistenteils zu Archivieren- oder Produktionszwecken mit kleineren lossy Audiodateien verwendet, die auf tragbaren Spielern und in anderen Fällen normalerweise verwenden werden, wo Abstellraum beschränkt wird und/oder genaue Erwiderung des Audios, ist unnötig.

Kompressionstechniken von Lossless

Die meisten lossless Kompressionsprogramme machen zwei Sachen in der Folge: Der erste Schritt erzeugt ein statistisches Modell für die Eingangsdaten, und der zweite Schritt verwendet dieses Modell, um Eingangsdaten zu auf solche Art und Weise so "wahrscheinlichen" Bit-Folgen kartografisch darzustellen (z.B oft gestoßen) Daten werden kürzere Produktion erzeugen als "unwahrscheinliche" Daten.

Die primären Verschlüsselungsalgorithmen, die verwendet sind, um Bit-Folgen zu erzeugen, sind Huffman, der codiert (auch verwendet dadurch DEFLATIONIEREN), und das arithmetische Codieren. Das arithmetische Codieren erreicht Kompressionsraten in der Nähe vom bestmöglichen für ein besonderes statistisches Modell, das durch das Informationswärmegewicht gegeben wird, wohingegen Kompression von Huffman einfacher und schneller ist, aber schlechte Ergebnisse für Modelle erzeugt, die sich mit Symbol-Wahrscheinlichkeiten in der Nähe von 1 befassen.

Es gibt zwei primäre Weisen, statistische Modelle zu bauen: In einem statischen Modell werden die Daten analysiert, und ein Modell wird dann gebaut dieses Modell wird mit den komprimierten Daten versorgt. Diese Annäherung ist einfach und modular, aber hat den Nachteil, den das Modell selbst teuer sein kann, um, und auch zu versorgen, dass es ein einzelnes Modell zwingt, für alle Daten verwendet zu werden, die zusammenpressen werden, und so schlecht auf Dateien leistet, die heterogene Daten enthalten. Anpassungsfähige Modelle aktualisieren dynamisch das Modell, weil die Daten zusammengepresst werden. Sowohl der encoder als auch Decoder beginnen mit einem trivialen Modell, schlechte Kompression von anfänglichen Daten nachgebend, aber wie sie mehr von den Daten erfahren, verbessert sich Leistung. Die meisten populären Typen der Kompression haben in der Praxis jetzt Gebrauch anpassungsfähige Codierer verwendet.

Kompressionsmethoden von Lossless können gemäß dem Typ von Daten kategorisiert werden sie werden zur Kompresse entworfen. Während, im Prinzip, jeder lossless Mehrzweckkompressionsalgorithmus (das Mehrzweckmeinen, dass sie jeden bitstring akzeptieren können) auf jedem Typ von Daten verwendet werden kann, sind viele unfähig, bedeutende Kompression auf Daten zu erreichen, die nicht der Form sind, für die sie zur Kompresse entworfen wurden. Viele der lossless Kompressionstechniken, die für den Text auch verwendet sind, arbeiten vernünftig gut für mit einem Inhaltsverzeichnis versehene Images.

Text und Image

Statistische modellierende Algorithmen für den Text (oder textähnliche binäre Daten wie executables) schließen ein:

Multimedia

Techniken, die die spezifischen Eigenschaften von Images wie das allgemeine Phänomen von aneinander grenzenden 2. Gebieten von ähnlichen Tönen ausnutzen.

Jedes Pixel, aber wird das erste durch den Unterschied zu seinem linken Nachbar ersetzt. Das führt zu kleinen Werten, die eine viel höhere Wahrscheinlichkeit haben als große Werte.

Das wird häufig auch angewandt, um Dateien erklingen zu lassen, und kann Dateien zusammenpressen, die größtenteils niedrige Frequenzen und niedrige Volumina enthalten.

Für Images kann dieser Schritt durch das Bringen des Unterschieds zum Spitzenpixel, und dann in Videos wiederholt werden, der Unterschied zum Pixel im folgenden Rahmen kann genommen werden.

Eine hierarchische Version dieser Technik nimmt benachbarte Paare von Datenpunkten, versorgt ihren Unterschied, und Summe, und auf einem höheren Niveau mit der niedrigeren Entschlossenheit geht mit den Summen weiter. Das wird genannt getrennte Elementarwelle verwandeln sich. JPEG2000 verwendet zusätzlich Datenpunkte von anderen Paaren und Multiplikationsfaktoren, um sie in den Unterschied zu mischen. Diese Faktoren müssen ganze Zahlen sein, so dass das Ergebnis eine ganze Zahl unter allen Verhältnissen ist. So werden die Werte vergrößert, Dateigröße vergrößernd, aber hoffentlich wird der Vertrieb von Werten mehr kulminiert.

Die anpassungsfähige Verschlüsselung verwendet die Wahrscheinlichkeiten von der vorherigen Probe in der gesunden Verschlüsselung, vom linken und oberen Pixel in der Bildverschlüsselung, und zusätzlich vom vorherigen Rahmen in der Videoverschlüsselung. In der Elementarwelle-Transformation werden die Wahrscheinlichkeiten auch durch die Hierarchie passiert.

Historische gesetzliche Probleme

Viele dieser Methoden werden in der offenen Quelle und den Eigentumswerkzeugen, besonders LZW und seine Varianten durchgeführt. Einige Algorithmen werden in den USA und anderen Ländern patentiert, und ihr gesetzlicher Gebrauch verlangt das Genehmigen durch den offenen Halter. Wegen Patente auf bestimmten Arten der LZW Kompression, und in besonderen Genehmigen-Methoden durch den offenen Halter Unisys, den viele Entwickler als beleidigend betrachtet haben, haben einige offene Quellbefürworter Leute dazu ermuntert zu vermeiden, Graphics Interchange Format (GIF) zu verwenden, um noch Bilddateien für Portable Network Graphics (PNG) zusammenzupressen, die sich verbindet, deflationieren die LZ77-basierten Algorithmus mit einer Auswahl an bereichsspezifischen Vorhersagefiltern. Jedoch sind die Patente auf LZW am 20. Juni 2003 abgelaufen.

Viele der lossless Kompressionstechniken, die für den Text auch verwendet sind, arbeiten vernünftig gut für mit einem Inhaltsverzeichnis versehene Images, aber es gibt andere Techniken, die für den typischen Text nicht arbeiten, die für einige Images nützlich sind (besonders einfacher bitmaps), und andere Techniken, die die spezifischen Eigenschaften von Images ausnutzen (wie das allgemeine Phänomen von aneinander grenzenden 2. Gebieten von ähnlichen Tönen und die Tatsache, dass Farbenimages gewöhnlich ein Überwiegen einer beschränkten Reihe von Farben aus denjenigen haben, die im Farbenraum wiederpräsentabel sind).

Wie erwähnt, vorher, lossless gesunde Kompression ist ein etwas spezialisiertes Gebiet. Ton-Kompressionsalgorithmen von Lossless können die sich wiederholenden Muster ausnutzen, die durch die Welle ähnliche Natur der Daten - im Wesentlichen das Verwenden autorückläufiger Modelle gezeigt sind, um den "folgenden" Wert und die Verschlüsselung (hoffentlich vorauszusagen, klein) Unterschied zwischen dem erwarteten Wert und den wirklichen Daten. Wenn der Unterschied zwischen dem vorausgesagten und den wirklichen Daten (hat den "Fehler" genannt), dazu neigt, klein zu sein, dann schätzt bestimmter Unterschied (wie 0, +1, −1 usw. auf Musterwerten) werden sehr häufig, der durch die Verschlüsselung von ihnen in wenigen Produktionsbit ausgenutzt werden kann.

Es ist manchmal vorteilhaft, um nur die Unterschiede zwischen zwei Versionen einer Datei (oder, in der Videokompression, von aufeinander folgenden Images innerhalb einer Folge) zusammenzupressen. Das wird Delta-Verschlüsselung genannt (aus dem griechischen Brief Δ, der in der Mathematik allgemein verwendet wird, um einen Unterschied anzuzeigen), aber der Begriff wird normalerweise nur gebraucht, wenn beide Versionen bedeutungsvolle Außenkompression und Dekompression sind. Zum Beispiel, während der Prozess, den Fehler im oben erwähnten lossless Audiokompressionsschema zusammenzupressen, als Delta-Verschlüsselung von der näher gekommenen Schallwelle bis die ursprüngliche Schallwelle beschrieben werden konnte, ist die näher gekommene Version der Schallwelle in jedem anderen Zusammenhang nicht bedeutungsvoll.

Kompressionsmethoden von Lossless

Durch die Operation des Ablegefach-Grundsatzes kann kein lossless Kompressionsalgorithmus alle möglichen Daten effizient zusammenpressen. Deshalb bestehen viele verschiedene Algorithmen, die entweder mit einem spezifischen Typ von Eingangsdaten im Sinn oder mit spezifischen Annahmen darüber entworfen werden, welche Arten der Überfülle die unkomprimierten Daten wahrscheinlich enthalten werden.

Einige der allgemeinsten lossless Kompressionsalgorithmen werden unten verzeichnet.

Allgemeiner Zweck

  • Verschlüsselung der Lauf-Länge (RLE) - ein einfaches Schema, das gute Kompression von Daten zur Verfügung stellt, die viele Läufe desselben Werts enthalten.
  • Lempel-Ziv 1978 (LZ78), Lempel-Ziv-Welch (LZW) - verwendet durch GIF Images und Kompresse unter vielen anderen Anwendungen
  • DEFLATIONIEREN SIE - verwendet durch gzip, SCHWIRREN (seit der Version 2.0), und als ein Teil des Kompressionsprozesses von Portable Network Graphics (PNG), Point-to-Point Protocol (PPP), HTTP, SSH
  • bzip2 - das Verwenden der Baue-Wheeler verwandelt sich, das stellt langsamer zur Verfügung, aber höhere Kompression als DEFLATIONIERT
  • Lempel-Ziv-Markov-Kettenalgorithmus (LZMA) - verwendet durch 7zip, xz, und andere Programme; höhere Kompression als bzip2 sowie viel schnellere Dekompression.
  • Lempel-Ziv-Oberhumer (LZO) - hat für die Geschwindigkeit der Kompression/Dekompression auf Kosten von Kompressionsverhältnissen entwickelt
  • Statistischer Lempel Ziv - eine Kombination der statistischen Methode und Wörterbuch-basierten Methode; besseres Kompressionsverhältnis als das Verwenden einzelner Methode.

Audio-

Grafik

  • ILBM - (lossless RLE Kompression von Amiga IFF Images)
  • JBIG2 - (lossless oder lossy Kompression B&W Images)
  • JPEG-LS - (lossless/near-lossless Kompressionsstandard)
  • JPEG 2000 - (schließt lossless Kompressionsmethode, wie bewiesen, durch Sunil Kumar, Prof San Diego Staatliche Universität ein)
  • JPEG XR - früher WMPhoto und HD Foto, schließt eine lossless Kompressionsmethode ein
  • PGF - Progressive Grafikdatei (lossless oder lossy Kompression)
  • PNG - tragbare Netzgrafik
  • ZANK - markiertes Bilddateiformat
  • Gifsicle (GPL) - Optimieren gif Dateien
  • Jpegoptim (GPL) - Optimieren jpeg Dateien

3D-Grafik

  • OpenCTM - die Kompression von Lossless des 3D-Dreiecks verwickelt

Video

Sieh diese Liste des lossless Videos codecs.

Geheimschrift

Cryptosystems häufig Kompresse-Daten vor der Verschlüsselung für die zusätzliche Sicherheit; die Kompression vor der Verschlüsselung hilft, Redundanzen und Muster zu entfernen, die cryptanalysis erleichtern könnten. Jedoch führen viele gewöhnliche lossless Kompressionsalgorithmen voraussagbare Muster (wie Kopfbälle, Streifbänder und Tische) in die komprimierten Daten ein, die wirklich cryptanalysis leichter machen können. Eine mögliche Lösung dieses Problems ist, Bijektive Kompression zu verwenden, die keine Kopfbälle oder Zusatzinformation hat. Auch das Verwenden bijektiver ganzer Datei verwandelt sich wie bijektiver BWT außerordentlich vergrößern die Unicity Entfernung. Deshalb, cryptosystems vereinigen häufig spezialisierte Kompressionsalgorithmen, die zu cryptosystem-oder mindestens spezifisch sind, demonstriert oder weit gehalten - aber nicht Standardkompressionsalgorithmen kryptografisch sicher zu sein, die effizient sind, aber potenzielle Gelegenheiten für cryptanalysis zur Verfügung stellen.

Executables

Das Selbstextrahieren executables enthält eine komprimierte Anwendung und einen decompressor. Wenn durchgeführt, dekomprimiert der decompressor durchsichtig und führt die ursprüngliche Anwendung. Das wird besonders häufig im Democodieren verwendet, wo Konkurrenzen für Demos mit strengen Größe-Grenzen, mindestens 1k gehalten werden.

Dieser Typ der Kompression wird auf binären executables nicht ausschließlich beschränkt, aber kann auch auf Schriften wie JavaScript angewandt werden.

Kompressionsabrisspunkte von Lossless

Kompressionsalgorithmen von Lossless und ihre Durchführungen werden in Mann gegen Mann Abrisspunkten alltäglich geprüft. Es gibt mehrere besser bekannte Kompressionsabrisspunkte. Einige Abrisspunkte bedecken nur das Kompressionsverhältnis, so bewerten Sieger in diesen, kann für den täglichen Gebrauch wegen der langsamen Geschwindigkeit der Spitzendarsteller unpassend sein. Ein anderer Nachteil von einigen Abrisspunkten besteht darin, dass ihre Datendateien bekannt sind, so können einige Programm-Schriftsteller ihre Programme für die beste Leistung auf einer besonderen Datei optimieren. Die Sieger auf diesen Abrisspunkten kommen häufig aus der Klasse der Zusammenhang mischenden Kompressionssoftware. Die Abrisspunkte, die in der 5. Ausgabe des Handbuches der Datenkompression (Springer, 2009) verzeichnet sind, sind:

  • Der Maximale Kompressionsabrisspunkt, angefangen 2003 und oft aktualisiert, schließt mehr als 150 Programme ein. Aufrechterhalten von Werner Bergmans prüft es auf einer Vielfalt von Dateien, einschließlich des Textes, der Images und des rechtskräftigen Codes. Zwei Typen von Ergebnissen werden berichtet: einzelne Dateikompression (SFC) und vielfache Dateikompression (MFC). Nicht überraschend gewinnen Zusammenhang-Mischen-Programme häufig hier; Programme von der PAQ Reihe und WinRK sind häufig in der Spitze. Die Seite hat auch eine Liste von Zeigestöcken zu anderen Abrisspunkten.
  • UCLC (die äußersten Kompressoren der Befehl-Linie) Abrisspunkt durch Johan de Bock ist ein anderer aktiv aufrechterhaltener Abrisspunkt einschließlich über 100 Programme. Die Sieger in den meisten Tests sind gewöhnlich PAQ Programme und WinRK, mit Ausnahme von der lossless Audioverschlüsselung und grayscale Bildkompression, wo einige Spezialalgorithmen scheinen.
  • Quetschen Sie die Karte von Stephan Busch ist eine andere oft aktualisierte Seite.
  • Die Abrisspunkte von EmilCont durch Berto Destasio sind etwas überholt 2004 am meisten kürzlich aktualisiert worden zu sein. Ein unterscheidendes Merkmal ist, dass die Datei nicht bekannt gegeben wird, um Optimierungen zu verhindern, die sie spezifisch ins Visier nehmen. Dennoch sind die besten Verhältnis-Sieger wieder die PAQ Familie, SCHLANK und WinRK.
  • Archive Comparison Test (ACT) durch Jeff Gilchrist hat 162 DOS/WINDOWS und 8 Macintosh lossless Kompressionsprogramme eingeschlossen, aber es war aktualisiert 2002 letzt.
  • Die Kunst der Lossless Datenkompression durch Alexander Ratushnyak stellt einen ähnlichen 2003 durchgeführten Test zur Verfügung.

Matt Mahoney, in seiner Ausgabe im Februar 2010 der freien Broschüre-Datenkompression Erklärt, verzeichnet zusätzlich den folgenden:

  • Das Calgary Korpus, das bis 1987 zurückgeht, wird wegen seiner kleinen Größe nicht mehr weit verwendet, obwohl Leonid A. Broukhis noch Die Calgary Korpus-Kompressionsherausforderung aufrechterhält, die 1996 angefangen hat.
  • Der Große Textkompressionsabrisspunkt und der ähnliche Hutter Preis beider verwenden einen zurechtgemachten XML UTF-8 Datei.
  • Der Allgemeine Kompressionsabrisspunkt, der von Mahoney selbst aufrechterhalten ist, prüft Kompression auf zufälligen Daten.
  • Sami Runsas (Autor von NanoZip) erhält Kompressionseinschaltquoten, ein Abrisspunkt aufrecht, der der Maximalen Kompression vielfacher Dateitest, aber mit minimalen Geschwindigkeitsvoraussetzungen ähnlich ist. Es bietet auch eine Rechenmaschine an, die dem Benutzer erlaubt, die Wichtigkeit von der Geschwindigkeit und dem Kompressionsverhältnis zu beschweren. Die Spitzenprogramme hier sind wegen der Geschwindigkeitsvoraussetzung ziemlich verschieden. Im Januar 2010 waren die Spitzenprogramme NanoZip, der von FreeArc, CCM, flashzip gefolgt ist, und 7-Schwirren-ist.
  • Das Ungeheuer des Kompressionsabrisspunkts durch N. F. Antonio prüft Kompression auf 1 GB von öffentlichen Daten mit einer 40-minutigen Frist. Bezüglich am 20. Dez 2009 der Spitze hat sich aufgereiht archiver ist NanoZip 0.07a, und die Spitze hat sich aufgereiht einzelner Dateikompressor ist ccmx 1.30c, das beides Zusammenhang-Mischen.

Beschränkungen

Datenkompressionsalgorithmen von Lossless können Kompression für alle Eingangsdateien nicht versichern. Mit anderen Worten, für jeden (lossless) Datenkompressionsalgorithmus, wird es eine Eingangsdatei geben, die kleiner, wenn bearbeitet, durch den Algorithmus nicht wird. Das wird mit der elementaren Mathematik mit einem Zählen-Argument wie folgt leicht bewiesen:

  • Nehmen Sie an, dass jede Datei als eine Schnur von Bit von etwas willkürlicher Länge vertreten wird.
  • Nehmen Sie an, dass es einen Kompressionsalgorithmus gibt, der jede Datei in eine verschiedene Datei umgestaltet, die nicht mehr ist als die ursprüngliche Datei, und dass mindestens eine Datei in etwas zusammengepresst wird, was kürzer ist als sich.
  • Lassen Sie, zu sein, kleinste numerieren solch, dass es eine Datei mit Länge-Bit dass Kompressen zu etwas kürzer gibt. Lassen Sie, die Länge (in Bit) der komprimierten Version dessen zu sein.
  • Weil
  • Aber ist kleiner als, so durch den Ablegefach-Grundsatz muss es eine Datei der Länge geben, die gleichzeitig die Produktion der Kompressionsfunktion auf zwei verschiedenen Eingängen ist. Diese Datei kann zuverlässig nicht dekomprimiert werden (welches von den zwei Originalen die sollten tragen?), der der Annahme widerspricht, dass der Algorithmus lossless war.
  • Wir müssen deshalb beschließen, dass unsere ursprüngliche Hypothese (dass die Kompressionsfunktion keine Datei länger macht) notwendigerweise untreu ist.

Jeder lossless Kompressionsalgorithmus, der einige Dateien kürzer macht, muss einige Dateien länger notwendigerweise machen, aber es ist nicht notwendig, dass jene Dateien sehr viel länger werden. Die meisten praktischen Kompressionsalgorithmen stellen eine "Flucht"-Möglichkeit zur Verfügung, die das normale Codieren für Dateien abdrehen kann, die länger werden würden, indem sie verschlüsselt wird. In der Theorie ist nur ein einzelne zusätzliche Bit erforderlich, dem Decoder zu sagen, dass das normale Codieren für den kompletten Eingang abgedreht worden ist; jedoch verwenden die meisten Verschlüsselungsalgorithmen mindestens ein volles Byte (und normalerweise mehr als ein) für diesen Zweck. DEFLATIONIEREN SIE zum Beispiel zusammengepresste Dateien nie muss um mehr als 5 Bytes pro 65,535 Bytes des Eingangs wachsen.

Tatsächlich, wenn wir Dateien der Länge N denken, wenn alle Dateien ebenso wahrscheinlich waren, dann für jede lossless Kompression, die die Größe von einer Datei reduziert, muss die erwartete Länge einer komprimierten Datei (durchschnittlich über alle möglichen Dateien der Länge N) notwendigerweise größer sein als N. So, wenn wir nichts über die Eigenschaften der Daten wissen, pressen wir zusammen, wir könnten es ebenso überhaupt nicht zusammenpressen. Ein lossless Kompressionsalgorithmus ist nur nützlich, wenn wir mit größerer Wahrscheinlichkeit bestimmte Typen von Dateien zusammenpressen werden als andere; dann konnte der Algorithmus entworfen werden, um jene Typen von Daten besser zusammenzupressen.

So ist die Hauptlehre vom Argument nicht, dass man große Verluste, aber bloß riskiert, dass man nicht immer gewinnen kann. Einen Algorithmus zu wählen, bedeutet immer implizit, eine Teilmenge aller Dateien auszuwählen, die nützlich kürzer werden werden. Das ist der theoretische Grund, warum wir verschiedene Kompressionsalgorithmen für verschiedene Arten von Dateien haben müssen: Es kann keinen Algorithmus geben, der für alle Arten von Daten gut ist.

Der "Trick", der lossless Kompressionsalgorithmen erlaubt, die auf dem Typ von Daten verwendet sind, für die sie entworfen wurden, um solche Dateien zu einer kürzeren Form durchweg zusammenzupressen, ist, dass die Dateien die Algorithmen werden entworfen, um allen zu folgen, eine Form der leicht modellierten Überfülle haben, die der Algorithmus entworfen wird, um zu entfernen, und so der Teilmenge von Dateien zu gehören, die dieser Algorithmus kürzer machen kann, wohingegen andere Dateien nicht zusammengepresst oder sogar größer werden würden. Algorithmen werden allgemein auf einen besonderen Typ der Datei ganz spezifisch abgestimmt: Zum Beispiel, lossless Audiokompressionsprogramme arbeiten gut an Textdateien, und umgekehrt nicht.

Insbesondere Dateien von zufälligen Daten können durch keinen denkbaren lossless Datenkompressionsalgorithmus durchweg zusammengepresst werden: Tatsächlich wird dieses Ergebnis verwendet, um das Konzept der Zufälligkeit in der algorithmischen Kompliziertheitstheorie zu definieren.

Ein Algorithmus, der, wie man behauptet, zur losslessly Kompresse jeder Datenstrom fähig ist, ist nachweisbar unmöglich. Während es viele Ansprüche im Laufe der Jahre von Gesellschaften gegeben hat, die "vollkommene Kompression" erreichen, wo eine beliebige Zahl N zufälliger Bit immer zu N &minus zusammengepresst werden kann; 1 Bit, diese Arten von Ansprüchen können sicher verworfen werden, ohne sogar auf weitere Details bezüglich des behaupteten Kompressionsschemas zu schauen. Solch ein Algorithmus widerspricht grundsätzlichen Gesetzen der Mathematik, weil, wenn es bestanden hat, es wiederholt auf losslessly angewandt werden konnte, reduzieren jede Datei auf die Länge 0. Angeblich "vollkommene" Kompressionsalgorithmen werden gewöhnlich spöttisch "magische" Kompressionsalgorithmen genannt.

Andererseits ist es auch bewiesen worden, dass es keinen Algorithmus gibt, um zu bestimmen, ob eine Datei incompressible im Sinne der Kompliziertheit von Kolmogorov ist; folglich, in Anbetracht jeder besonderen Datei, selbst wenn es zufällig scheint, ist es möglich, dass es sogar einschließlich der Größe des decompressor bedeutsam zusammengepresst werden kann. Ein Beispiel ist die Ziffern des mathematischen unveränderlichen Pis, die zufällig scheinen, aber durch ein sehr kleines Programm erzeugt werden können. Jedoch, wenn auch es nicht bestimmt werden kann, ob eine besondere Datei incompressible ist, zeigt ein einfacher Lehrsatz über Incompressible-Schnuren, dass mehr als 99 % von Dateien jeder gegebenen Länge durch mehr als ein Byte (einschließlich der Größe des decompressor) nicht zusammengepresst werden können.

Mathematischer Hintergrund

Jeder Kompressionsalgorithmus kann als eine Funktion angesehen werden, die Folgen von Einheiten (normalerweise Oktette) in andere Folgen derselben Einheiten kartografisch darstellt. Kompression ist erfolgreich, wenn die resultierende Folge kürzer ist, als die ursprüngliche Folge plus die Karte es dekomprimieren musste. In der Größenordnung von einem Kompressionsalgorithmus, der als lossless zu betrachten ist, dort muss bestehen von komprimierten Bit-Folgen bis ursprüngliche Bit-Folgen Rück-kartografisch darzustellen; das heißt, würde die Kompressionsmethode eine Bijektion zwischen "einfachen" und "komprimierten" Bit-Folgen kurz zusammenfassen müssen.

Die Folgen der Länge N oder ist weniger klar eine strenge Obermenge der Folgen der Länge N − 1 oder weniger. Hieraus folgt dass es mehr Folgen der Länge N gibt oder weniger als es Folgen der Länge N &minus gibt; 1 oder weniger. Es folgt deshalb aus dem Ablegefach-Grundsatz, dass es nicht möglich ist, jede Folge der Länge N oder weniger zu einer einzigartigen Folge der Länge N &minus kartografisch darzustellen; 1 oder weniger. Deshalb ist es nicht möglich, einen Algorithmus zu erzeugen, der die Größe jeder möglichen Eingangsfolge reduziert.

Psychologischer Hintergrund

Die meisten täglichen Dateien sind in einem Informationswärmegewicht-Sinn, und so 'relativ spärlich', die meisten lossless Algorithmen, die ein Laie wahrscheinlich an regelmäßige Dateien anwenden wird, pressen sie relativ gut zusammen. Das, durch die falsche Verwendung der Intuition, kann einige Personen dazu bringen zu beschließen, dass ein gut bestimmter Kompressionsalgorithmus jeden Eingang zusammenpressen kann, so einen magischen Kompressionsalgorithmus einsetzend.

Punkte der Anwendung in der echten Kompressionstheorie

Echte Kompressionsalgorithmus-Entwerfer akzeptieren, dass Ströme des hohen Informationswärmegewichtes, und entsprechend nicht zusammengepresst werden können, schließen Sie Möglichkeiten ein, um diese Bedingung zu entdecken und zu behandeln. Ein offensichtlicher Weg der Entdeckung wendet einen rohen Kompressionsalgorithmus an und prüft, wenn seine Produktion kleiner ist als sein Eingang. Manchmal wird Entdeckung durch die Heuristik gemacht; zum Beispiel kann eine Kompressionsanwendung Dateien denken, deren Namen in ".zip", ".arj" oder ".lha" unkomprimierbar ohne mehr hoch entwickelte Entdeckung enden. Eine allgemeine Weise, diese Situation zu behandeln, setzt Eingang oder unkomprimierbare Teile des Eingangs in der Produktion an, die Kompression oben minimierend. Zum Beispiel gibt das Schwirren-Datenformat die 'Kompressionsmethode' von 'Stored' für Eingangsdateien an, die ins wortwörtliche Archiv kopiert worden sind.

Die Million Zufallszahl-Herausforderung

Mark Nelson, der über viele Kurbeln frustriert ist, die versuchen zu fordern, einen magischen Kompressionsalgorithmus erfunden, der in comp.compression erscheint, hat eine binäre 415,241-Byte-Datei (http://marknelson.us/attachments/million-digit-challenge/AMillionRandomDigits.bin) hoch entropic Inhalt gebaut, und eine öffentliche Herausforderung von 100 $ zu jedem ausgegeben, um ein Programm zu schreiben, das, zusammen mit seinem Eingang, kleiner sein würde, als seine zur Verfügung gestellten binären Daten noch im Stande sein wieder einzusetzen es ohne Fehler (dekomprimieren).

Die häufig gestellten Fragen für den comp.compression newsgroup enthalten eine Herausforderung durch Mike Goldman, der 5,000 $ für ein Programm anbietet, das zufällige Daten zusammenpressen kann. Patrick Craig hat die Herausforderung aufgenommen, aber anstatt die Daten zusammenzupressen, hat er sie in getrennte Dateien aufgeteilt, von denen alle beendet in der Nummer '5', die als ein Teil der Datei nicht versorgt wurde. Das Auslassen dieses Charakters hat die resultierenden Dateien erlaubt (plus, in Übereinstimmung mit den Regeln, der Größe des Programms, das sie wieder versammelt hat), kleiner zu sein, als die ursprüngliche Datei. Jedoch hat keine wirkliche Kompression stattgefunden, und die in den Namen der Dateien versorgte Information war notwendig, um sie in der richtigen Ordnung in die ursprüngliche Datei wieder zu versammeln, und diese Information im Dateigröße-Vergleich nicht in Betracht gezogen wurde. Die Dateien selbst sind so nicht genügend, um die ursprüngliche Datei wieder einzusetzen; die Dateinamen sind auch notwendig. Eine volle Geschichte des Ereignisses, einschließlich der Diskussion darüber, ob die Herausforderung technisch entsprochen wurde, ist auf der Website von Patrick Craig.

Siehe auch

Außenverbindungen


Kompression von Lossy / Larry Niven
Impressum & Datenschutz