Kompression im Allgemeinen
Das Problem
Während moderne PC meistens ausgerüstet sein mit recht großformatigen Festplattenlaufwerken, ist es doch noch zu einfach aus Speicherkapazität heraus zu laufen. Ein weiteres Problem ist wenn Sie Akten über das Internet senden oder empfangen. Es kann eine lange Zeit nehmen, eine große Akte zu jemand zu schicken, besonders auf einem langsamen Anschluss. Also, was kann getan werden? Die Antwort ist, die Akten zusammenzudrücken, dann nehmen sie weniger Raum und Sendenzeit auf.
Was ist Kompression?
Kompression ist der zurücksetzbare oder nicht zurücksetzbare Umwandlungsprozeß der Verringerung der Größe einer Akte durch verschlüsseln seiner Dateninformationen, damit die Daten leistungsfähiger gespeichert werden und übertragen werden können. Diese Kompression kann auf Daten aber auch auf einer speziellen Art Daten erzielt werden: die Binärdatei in Form einer Executable oder eines DLL oder irgendeine andere Art Binärdateien. Jede Weise, das Resultat ist eine Verkleinerung in der Zahl der Bits und Bytes und führt zu eine kleinere Dateigröße. Die Größe der Daten in komprimierter Form im Verhältnis zu seiner ursprünglichen Größe ist bekannt als das Kompressionsverhältnis oder Ratio. Ratio sind stark abhängig von dem verwendeten Algorithmus und sind abhängig von der Natur der Akten.
Wie verwendet man Kompression?
Eine Möglichkeit ist, Programme zu verwenden um Akten zusammenzudrücken und zu dekompressieren die speziell dazu entworfen sind. Sobald zusammengedrückt, können Akten nicht im Allgemeinen benutzt werden, bis sie wieder und als Original dekomprimiert sind. Kompression ist gut für archivalisieren oder für das Mailen. Ein weithin bekanntes Beispiel einer Kompressionstechnologie ist ZIP, ein allgemeiner Standard für zusammendrücken von Dateien. Für Binärdateien ist diese Weise nicht möglich, weil der komprimierte Executable alle Startfähigkeiten lösen würde (sehen Sie weiter wie dieses in den Binärdateien gelöst wird).
Kompression wird auch in vielen Fällen unsichtbar für Benutzer verwendet. Ein Modem benutzt eine Form der Kompression, wenn es Daten sendet und empfängt. Mann kann schon beachtet haben, dass, selbst wenn angeschlossen worden an 32K wobei Downloadgeschwindigkeiten auf um 3.5k pro Sekunde begrenzt sein, mann häufig das Doppelte dieser Geschwindigkeit sieht, wenn es in hohem Grade Text oder andere gut zusammenpressbare Akten herunterlädt. Auch mit Grafikakten geschieht das so.
Wie arbeitet Kompression?
Wenn Sie eine Textakte haben, kann es sein dass wiederholende einzelne Wörter, Wortkombinationen und Phrasen, die Speicherkapazität unproduktiv verwenden. Oder es kann Mittel wie grafische Bilder in ihr geben, wobei Dateninformationen zu viel Raum besetzen. Um diese Unwirtschaftlichkeit elektronisch zu verringern, können Sie das Dokument zusammendrücken.
Kompression bereicht man indem man Kompressionsalgorithmen (Formeln) verwendet die Dateninformationen neu ordnen und reorganisieren, damit sie ökonomischer gespeichert werden können. Indem man Informationen verschlüsselt, können Daten unter Verwendung weniger Bits gespeichert werden. Dieses wird getan, indem man ein Kompressions-/Dekompressionprogramm verwendet das die Struktur der Daten vorübergehend für das Transportieren ändert und die Archivierung umformatiert und speichert.
Kompression verringert das Volumen der Informationen, indem sie unterschiedliche und effiziente Arten der Darstellung der Informationen verwendet. Methoden können Raumbuchstaben unter Verwendung eines einzelnen Buchstabens umfassen, um eine Schnur der wiederholten Buchstaben oder das Ersetzen der kleineren Reihenfolgen durch wiederkehrende Buchstaben zu identifizieren. Einige Kompressionsalgorithmen löschen gar Informationen um eine kleinere Dateigröße zu erzielen. Abhängig von dem verwendeten Algorithmus und dem Akten, können Akten von seiner ursprünglichen Größe sehr stark verringert werden.
Wenn das Gegenteil des Prozesses, die Dekompression, eine genaue Kopie der ursprünglichen Datei produziert, heist die Kompression "lossless". Das Gegenteil heist die "lossy"-Kompression. Sie wird normalerweise angewendet für Bilddateien, erlaubt keine Wiedergabe einer genauen Kopie des ursprünglichen Bildes, aber hat ein höheres Kompressionsverhältnis. So erlaubt lossy-Kompression, dass nur ein Näherungswert der Vorlage erzeugt wird.
Lossy-Kompression
Lossy-Kompression schrumpft Akten, indem sie Bits von Daten wegwirft, die nachher nicht beachtet werden. MP3 ist solch ein System. Er beruht auf der psychisch-akustischen Weise, die das Gehirn Audio andeutet und verwendet verschiedene Tricks, um etwas zu produzieren, das fast egal klingt, aber das in Wirklichkeit soviel wie 90% der Daten fehlt. Ein anderes lossy-System ist JPEG oder JPG, das entworfen ist, um hohe Kompression auf fotographischer Bilder zur Verfügung zu stellen. Also, Lossy-Kompression verringert einerseits die Größe einer Akte, indem sie Bits der Informationen beseitigt. Sie löscht dauerhaft alle nicht notwendigen Daten. Diese Kompression wird normalerweise mit Bildern, Audio und Grafiken verwendet, in denen ein Verlust der Qualität erschwinglich ist. Jedoch kann die ursprüngliche Akte nicht behalten werden.
Zum Beispiel in einem Bild das eine grüne Landschaft mit einem blauen Himmel enthält, werden alle verschiedenen und geringfügigen Farbtöne des Blaus und des Grüns mit Kompression beseitigt. Die wesentliche Art der Daten ist nicht verloren weil die wesentlichen Farben sind noch dort. Große Teile der Abbildung sind die gleiche Farbe, möglicherweise vollständigen Linien. Eher als eine gesamte Reihe von möglicherweise 800 weißen Pixeln jedes mal mit zwei Bytes zu speichern um die Farbe (ein Maximum von 65535 möglichen Farben erlaubend) als 2 x 800 oder 1600 Bytes zu speichern, speichern Sie das unter Kompression als 2 Bytes für die Farbe und noch zwei Bytes für die Zahhl der gleichen Pixeln. Das macht dann 4 Bytes gegenüber 1600 Bytes ... ein Riesengewinn.
Lossless Kompression
Lossless Kompression ist eine Art Kompression, die Akten ohne einen Informationsverlust im Prozess verringern kann. Die ursprüngliche Akte kann beim Dekompressieren genau wie neu erstellt werden. Um dieses zu erzielen, verursachen Algorithmen Bezugspunkte (Ersatzbuchstaben) für Sachen wie Textmuster, speichern sie in einem Katalog und senden sie zusammen mit der kleineren verschlüsselten Akte. Wenn dekompressiert wird die Akte erneuert wobei sie die dokumentierte Bezugspunkte verwendet, und so werden die ursprünglichen Informationen neu gefunden.
Lossless Kompression ist für die Dokumente ideal, die Text und numerische Daten, in denen jeder möglicher Verlust der Textinformationen, nicht zugelassen werden kann. ZIP Kompression zum Beispiel ist eine Lossless Kompression, die Muster ermittelt und sie durch einen einzelnen Buchstaben ersetzt. LZMA Kompression ist ein anderes Beispiel der lossless Kompression. Dieses ist auch die Art der Kompression verwendet in lARP64Free und lARP64Pro (sehen Sie unten weiter).
Diese scheinbar unmögliche Aufgabe beruht auf der Tatsache, dass die meisten Akten große Plätze oder sich wiederholende Daten enthalten. Als Beispiel erwähnen Sie, dass in diesem Stück Info das Sie in diesem Augenblick lesen, das Wort „Kompression“ immer wieder erscheint, was jedes mal 11 Bytes Lagerung nimmt. Ein Kompressionssystem könnte dieses merken und nach dem ersten Vorkommen, eher als das tatsächliche Wort zu speichern, eine ein-Byte-Anzeige speichern, um zu sagen, dass es ein Wiederholungswort plus ein Byte ist, das zweite Byte zum anzeigen welches Wort es ist. Das Resultat ist, dass jedes Vorkommen „Kompression“ jetzt nur 2 Bytes und nicht 11 benötigt, eine Einsparung von 9 Bytes und über 80% für dieses Wort. Wenn Sie jetzt diesen Prozess für die 256 allgemeinsten Wörter wiederholen, können Sie die Größe der Akte durchaus stark verringern. Wenn Sie die Akte dekomprimieren, findet das Dekompressionprogramm diese Codes für wiederholte Wörter und stellt die ganzen Wörter in ihrem Platz wieder her, der folglich das Dokument zu seiner ursprünglichen Größe und Inhalt wieder herstellt.
Resultate
Der Erfolg der Datenverdichtung hängt stark von den Daten selbst ab und einige Arten von Daten sind in sich selbst zusammenpressbarer als andere. Im Allgemeinen sind einige Elemente innerhalb der Daten allgemeiner als andere und die meisten Kompressionsalgorithmen nutzen dieses Eigentum aus, bekannt als Redundanz. Desto größer die Redundanz innerhalb der Daten, desto erfolgreicher die Kompression der Daten wahrscheinlich sein wird. Digital-Video enthält viel Redundanz und ist folglich für Kompression sehr verwendbar.
Viele Kompressionstechniken sind entwickelt worden und einige lossless Techniken können für alle Art von Daten angewendet werden. Entwicklung in den letzten Jahren der lossy-Techniken spezifisch für Bilddaten, hat sehr viel zur Realisierung der digitalen videoanwendungen beigetragen.
Bis jetzt für die Kompression im Allgemeinen, was aber über Kompression auf Binärdateien?
Executable Kompression
Executable Kompression ist alle mögliche Mittel des Zusammendrückens einer Executable wobei die komprimierten Daten mit dem Dekompressioncode zusammengefügt werden. Dieser Dekompressioncode, der den komprimierten Daten hinzugefügt wird, wird häufig den Dekompressionstummel genannt. Ein komprimiertes Executable laufen lassen bedeutet im Wesentlichen dass der Dekompressionstummel den ursprünglichen Executabe Code auspackt bevor der Verabschiedung von Steuerung zur neu angeordneten ursprünglichen Binärdatei. Der Effekt ist der selbe, als ob das ursprüngliche uncompressed Executable laufen gelassen worden war. Für den Benutzer sind zusammengedrückten und originalen Executables nicht zu unterscheiden.
Die Tat des Zusammendrückens einer Executable wird häufig, als „Packung“ angedeutet, als typischer Name für ein Executable zusammendrückendes Programm wird dann ein „Packer“ genennt.
Ein komprimierte Executable ist ein selbst-extracting Archive, in dem komprimierte Daten zusammen mit dem Dekompressionstummel in eine Executable Akte verpackt werden. So gibt es kein unterschiedliches Programm das benötigt wird um ein komprimierter Executable zu starten. Die meisten verpackten Executables dekomprimieren direkt in das Memory und benötigen keinen freien Dateisystemraum zu beginnen.
Software-Verteiler verwenden Executable Kompression für eine Vielzahl von Gründen, die Fremdspeicheranforderungen von Software hauptsächlich zu verringern. Executable Kompressoren sind spezifisch entworfen um Executable Code zusammen zu drücken, das ist warum sie häufig ein besseres Kompressionsverhältnis als Dateikomprimierung erreichen. Dieses erlaubt Software-Verteilern, innerhalb der Begrenzungen ihrer ausgesuchten Verteilungsmittel zu bleiben, oder Zeit und Bandbreiten verringern zu können für Software die über das Internet verteilt wird.
Executable Kompression wird auch häufig verwendet um Cracken abzuhalten oder den Inhalt vom Executable durch eigene Methoden der Kompression zu verdunkeln und/oder der addierten Verschlüsselung. Malware ist dafür bekannt in vielen der Fälle zusammengedrückt zu werden um ihre Anwesenheit für Antivirusscannern zu verstecken. Executable Kompression kann verwendet werden um direktes disassemblierung zu verhindern, zu maskieren und zu ändern. Jedoch beseitigt Executable Kompression nicht das Cracken, es kann den Prozess nur schwieriger bilden. Im Allgemeinen ist Kompression zweifellos unzireichend das Cracken zu verhindern.
Ein komprimiertes Executable erfordert weniger Speicherkapazität im Dateisystem, dadurch sind in weniger Zeit Daten vom Dateisystem in Gedächtnis zu übertragen. Einerseits erfordert es einige Zeit, die Daten zu dekomprimieren, bevor Durchführung anfängt. Jedoch hat die Geschwindigkeit der verschiedenen Speichermedien nicht mit durchschnittlichen Prozessorgeschwindigkeiten aufrecht zu halten, also ist die Lagerung sehr häufig der Engpass. So ist der komprimierte Executable schneller auf den meisten allgemeinen Systemen. Auf modernen Tischrechnern ist dieses selten wahrnehmbar, es sei denn das vollziehbare ungewöhnlich groß ist, also ist Ladengeschwindigkeit nicht ein Hauptgrund für oder gegen das Zusammendrücken einer Executable.
Die Executable Kompression lässt zu mehr Software in der selben Menge des Raumes zu speichern ohne die datei jedes Mal manuell auspacken zu müssen wenn der Benutzer die Software benutzen möchte.
lARP64Free und lArp64Pro
lARP64Free als 64 Bit Software-Kompressionsprogramm und lArp64Pro als 64 Bit Software-Schutzprogramm haben beide eingebaute Kompression die auf dem Lempel-Ziv-Markov Kettenalgorithmus (LZMA) basiert. Es ist ein Kompressionsalgorithmus unter Verwendung eines Wörterbuch-kompressionsentwurfs. Es kennzeichnet ein hohes Kompressionsverhältnis für eine kleine Stummelgröße mit einer guten Kompressions- und Dekompressiongeschwindigkeit, die es als Ideales Executable Kompressionsalgorithmus bildet.
Warum LZMA wählen?
LZMA ist ein Spitzenkompressionsalgorithmus auf Grund der Größe und Ratio. Es erledigt eine Superarbeit des Zusammendrückens der Executable Akten und stellt normalerweise eine bessere Kompression als andere Algorithmen bereit, besonders auf größeren Akten. LZMA ist eine Anpassung von LZ77 mit dem Ziel der großen Kompression und der schnellen Dekompression. Es verwendet Streckenkodierung (Huffman Kodierung) und Gebraucht eine Wörterbuchgröße falls erforderlich.
lARP64Tech hat für LZMA entschieden, weil es so viele Vorteile anbietet.