Zippen - HowTo ?

Tutorials.at
Verfügbare Informationen zu "Zippen - HowTo ?"

  • Qualität des Beitrags: 0 Sterne
  • 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:52

    Zippen - 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)