Verfügbare Informationen zu "Zippen - HowTo ?"
Qualität des Beitrags: Beteiligte Poster: Dirty Oerty - wirthi - DrPhil_Guth - Xin Forum: Tutorials.at Forenbeschreibung: Programmierforum aus dem Unterforum: Allgemeines Antworten: 5 Forum gestartet am: Mittwoch 19.04.2006 Sprache: deutsch Link zum Originaltopic: Zippen - HowTo ? Letzte Antwort: vor 15 Jahren, 21 Tagen, 6 Stunden, 5 Minuten
Alle Beiträge und Antworten zu "Zippen - HowTo ?"
Re: Zippen - HowTo ?
Dirty Oerty - 05.03.2008, 22:52Zippen - HowTo ?
Tag.
Hab mich neulich mal gefragt, wie das programmiertechnisch gelöst ist.
Also das "Zippen", das "verkleinern" von Datenmengen.
Weiß das jemand aus der Runde?
MfG
Daniel
Re: Zippen - HowTo ?
wirthi - 06.03.2008, 09:01
Äh - was willst du jetzt hören? Die Theorie hinter Datenkompression (diesbezüglich verweise ich auf Wikipedia: http://de.wikipedia.org/wiki/Datenkompression)
Oder willst du wissen, wie du sowas in dein Programm einbaust? Dann schau beispielsweise auf http://www.zlib.net/
Re: Zippen - HowTo ?
DrPhil_Guth - 06.03.2008, 11:01
Also da gibts nur 2 Möglichkeiten: entweder du siehst dir den Algorithmus an und shcreibst deine eigene Bibliothek, oder du verwendest eine Bereits vorhandene.
Versuchs mal damit: http://www.codeproject.com/KB/library/LiteZip.aspx
oder hier: http://www.thefreecountry.com/sourcecode/compression.shtml
oder den link von Wirthi.
Ich muss sagen, mit den suchbegriffen "Compression Zip C++ Tutorial" hab ich auch recht viel bei Google gefunden.
Re: Zippen - HowTo ?
Dirty Oerty - 06.03.2008, 20:52
Ne, mich interesiert das rein theoretisch.
Wie man's für die eigenen Programme verwendet, ist natürlich auch sehr interessant.
Was mich aber vorallem interessiert, ob ihr (einer von euch) das schon mal gemacht hat?
Mir geht's um Erfahrungen.
MfG
Daniel
Re: Zippen - HowTo ?
Xin - 06.03.2008, 23:59
Dirty Oerty hat folgendes geschrieben: Was mich aber vorallem interessiert, ob ihr (einer von euch) das schon mal gemacht hat?
Ich habe letztes Jahr mal den LZ77 Algorithmus umgesetzt.
Zunächst braucht man eine Datenstruktur, mit der man Daten ausdrücken kann. Hier wird ein einzelner Buchstabe gespeichert. Zusätzlich schreibt man in die Datenstruktur, ob sich Buchstaben (vor dem gespeicherten) wiederholen, an welcher Position diese vor dem aktuellen Buchstaben stehen und wie viele Buchstaben sich wiederholen. Hierfür nimmt man gerne ein "Fenster" von 12 Bit (4096 Zeichen, die man vor dem aktuellen Buchstaben durchsucht) und 4 Bit (max 16 Zeichen), die sich wiederholen dürfen.
Code:
"dadadudadadadadudada" => 160 Bit
"d adadudadadadadudada" [ 0 Zeichen wiederholen; 0 Zeichen Offset, "d"] 8 Bit gespeichert -> 24 Bit verbraucht -> speichert "d"
"da dadudadadadadudada" [ 0 Zeichen wiederholen, 0 Zeichen Offset, "a"] 8 Bit gespeichert -> 24 Bit verbraucht -> speichert "a"
"DAdad udadadadadudada" [ 2 Zeichen wiederholen, 2 Zeichen offset, "d"] 24 Bit gespeichert -> 24 Bit verbraucht -> speichert "da+d"
"dadadu dadadadadudada" [ 0 Zeichen wiederholen, 0 Zeichen Offset, "u"] 8 Bit gespeichert -> 24 Bit verbraucht -> speichert "u"
"DADADudadada dadudada" [ 5 Zeichen wiederholen, 6 Zeichen offset, "a"] 48 Bit gespeichert -> 24 Bit verbraucht -> speichert "dadad+a"
"daDADUDADAda dadudada" [ 7 Zeichen wiederholen, 8 Zeichen offset, "a"] 64 Bit gespeichert -> 24 Bit verbraucht -> speichert "dadudad+a"
160 Bit gespeichert -> 144 Bit verbraucht -> speichert "d" "a" "dad" "u" "dadada" "dadudada"
Aus 160 bit (20 Byte) werden also 144 Bit (18 Byte).
Die maximale Packrate bedeutet, dass es während der letzten 4095 immer ein Feld gibt, in dem sich 16 Zeichen wiederholen. Mit dem Zeichen, das in der Datenstruktur liegt kann man mit 3 Byte 17 Byte repräsentieren.
Fenstergröße und Zahl der Wiederholungen lassen sich entsprechend für die zu packenden Daten optimieren.
Mit folgendem Code, können Sie den Beitrag ganz bequem auf ihrer Homepage verlinken
Weitere Beiträge aus dem Forum Tutorials.at
Für Matheprofis... - gepostet von detewe89 am Freitag 25.05.2007
Notenprogramm von C zu C++ fehlerhaft - gepostet von Kleriker am Dienstag 09.05.2006
wie kann ich bei komma zahlen das komma verwenden - gepostet von Pole am Dienstag 19.12.2006
PC-Spiele programmieren - gepostet von Dominik92 am Mittwoch 13.09.2006
Englischvokabelverwalter - gepostet von Dragorad am Montag 23.10.2006
sich selbst aufrufendes Programm - gepostet von Moritz am Mittwoch 24.10.2007
Turbo C - gepostet von Mei$ter A^ am Montag 24.04.2006
Umrechner Arabische in Römische Zahlen - gepostet von Walgo am Donnerstag 19.07.2007
Datei öffnen - gepostet von ringo am Donnerstag 23.08.2007
Ähnliche Beiträge wie "Zippen - HowTo ?"
Ist es Euch egal,was Andere über Euch denken? - Urschl (Dienstag 06.02.2007)
Über Träume im Allgemeinen - martina (Montag 10.04.2006)
how many filmed songs do we have of frida in the 60's ? - frenchy (Donnerstag 18.10.2012)
Die Person Über mir ... =) - Lina* (Sonntag 19.11.2006)
der poster über euch - fallen AnqeL <3 (Sonntag 19.11.2006)
Die Kritik über CS - $ekto (Donnerstag 18.01.2007)
Ein paar Worte über euch - vanessa (Samstag 10.09.2005)
Skillungen und was ihr über die Zukunft denkt - Wendel (Mittwoch 24.01.2007)
Mal was ganz anderes...mal nichts über tiere - chaossister2 (Mittwoch 07.02.2007)
ich weiß jetzt definitiv, welche felgen mein auto bekommt - MB2sport (Sonntag 02.12.2007)
