wie funktionieren packer?
Von: , Frage gestellt am Mi, 18. Okt 2000
hi,
könnte jmd. grob umschreiben wie packer funktionieren (zip)
danke
hi,
könnte jmd. grob umschreiben wie packer funktionieren (zip)
danke
Hallo
Grundsätzlich muss zuerst einmal zwischen verlustfreien und verlustbehafteten Komprimierverfahren unterschieden werden.
Für Programme und Daten wie (Text, Tabellen etc.) kommen nur verlustfreie Verfahren in Frage, da ja jedes einzelne Bit erhalten werden muss.
Für Bilder und Musik kommen meist verlustbehaftete Verfahren zum Einsatz da, insbesondere ungeschulte, Augen und Ohren nicht alle Feinheiten welche die Technik unterscheiden kann auch unterscheiden können. z.B. erscheint eine hellgraue Figur auf schwarzem Grund als Weiss, also kann man die Figur gleich weiss statt grau Zeichnen.
Ein einfaches verlustfreies Verfahren besteht darin, dass mehrere aufeinanderfolgende gleiche Zeichen nicht einzeln abgelegt werden sondern nur, einmal das Zeichen und die Anzahl:
statt "AAAAAAA" wird "7A" abgelegt, das spart hier schon mal 5 Zeichen.
Beim Ziff-Lempel Verfahren, die Basis der meisten Packer, wird zuerst eine Liste aller vorkommender Zeichen und deren Anzahl erstellt und danach die Liste nach der Häufigkeit sortiert. Danach werden die Daten neu kodiert, allerdings bitweise. Das Häufigste Zeichen wird mit dem Code "1", das nächste mit "01", dann "001", 0001" usw. ersetzt. Dadurch benötigt das häufigste Zeichen statt 8 Bit nur noch 1 Bit Speicherplatz.
Allerdings muss bei diesem Verfahren die Liste zusammen mit den Daten abgelegt werden, wodurch dann bei ganz kleinen Datenmengen das Resultat mehr Platz braucht als vorher.
MfG Peter(TOO)
Zur Ergänzung:
Bei Bild, Video und Audiodateien werden in der Regel Fourier-
transformationen (zB Cosinustransformation) durchgeführt. Man erhält ein Frequenzspektrum aus dem man nun die nicht hörbaren bzw. nicht sichtbaren Frequenzen entfernt (jpg, mpeg, mp3).
Der populärste Packertyp ist wohl der "Huffman-Code", der ua.
auch bei zip-Archiven benutzt wird. Hier wird auch eine
Häufigkeitsanalyse vorgenommen und auf bestimmte Art und Weise
ein Binärbaum konstruiert, so dass die Blätter des Baumes die
Zeichen darstellen. Der (binäre) Pfad zu diesen Blättern ist
die eigendliche Kodierung. Also je häufiger das Zeichen, desto
kürzer der Pfad. Das Optimale: Die Pfadlänge nimmt mit der Anzahl der Zeichen nur logarithmisch zu.
Gruss Frank
Hi Priscal :)))
Man unterscheidet zwischen Daten-Kompression und Daten-Reduktion. Die Kompression ist verlustfrei, die Reduktion dagegen verlustbehaftet.
Daten-Reduktion:
================
Daten-Reduktions-Methoden finden fast ausschließlich bei Bild- und Ton-Dateien eine sinnvolle Anwendung (JPG, MP3). Hierbei werden unwesentliche Informationen einfach ausgelassen. Bei JPG sind es die hohen Ortsfrequenzen, die für die Bildschärfe sorgen, und mittels einer sog. diskreten Cosinus-Transformation ausfindig und danach herausgefiltert werden können. Bei MP3 wird ausgenutzt, dass unser Gehör nach einem bestimmten Ton für kurze Zeit nicht mehr alle Töne, sondern nur noch bestimmte Töne wahrnehmen kann, so dass man die nicht-hörbaren Töne einfach herausfiltert und nicht mehr mit abspeichert. Wenn du dich dafür interessierst, kann ich dir gerne weiter Informationen zukommen lassen, hier würde das zu weit führen.
HUFFMAN-Kompression
===================
Eine viel breitere Anwendung finden jedoch die Daten-Kompressions-Methoden. Lange Zeit glaubte man, mit der sog Huffman-Codierung am Ende angekommen zu sein. Beim Huffman-Verfahren ordnet man den am häufigsten vorkommenden Bytes ein kürzeres Bitmuster zu als den seltener vorkommenden Bytes. Machen wir dazu ein Beispiel:
BILL GATES IST AMERIKANER
Wir zählen zunächst, wie oft jeder Buchstabe vorkommt (die Leerzeichen lassen wir weg):
A B E G I K L M N R S T 3 1 3 1 3 1 2 1 1 2 2 2
A B E G I K L M N R S T 3 1 3 1 3 1 2 1 1 2 2 2 ----------------------- 0 1
A BG E I K L M N R S T 3 2 3 3 1 2 1 1 2 2 2 ---------------------- 01
A BG E I KM L N R S T 3 2 3 3 2 2 1 2 2 2 --------------------- 01 01
A BGN E I KM L R S T 3 3 3 3 2 2 2 2 2 -------------------- 001 01 01
A BGN E I KML R S T 3 3 3 3 4 2 2 2 ------------------- 001 001 01 01
A BGN E I KML RS T 3 3 3 3 4 4 2 ------------------ 001 001 01 01 01
AT BGN E I KML RS 5 3 3 3 4 4 ----------------- 01 001 001 01 01 01
AT BGNE I KML RS 5 6 3 4 4 ---------------- 01 0001 001 01 001 01 01
AT BGNE IKML RS 5 6 7 4 --------------- 01 0001 0111 01 001 001 01 01
ATRS BGNE IKML
9 6 7
--------------
0011 0001 0111
0101 001 001
01 01
ATRS BGNEIKML
9 13
-------------
0011 00001111
0101 00010111
001 001
01 01
ATRSBGNEIKML
------------
000011111111
001100001111
010100010111
001 001
01 01