Wie funktionieren Packprogramme? Und gibt es auch Packbibliotheken?



  • Hi
    Wie schaffen es Programme wie WinRar eigentlich, ohne Informationsverlust die Datei zu verkleinern, und gibt es auch Bibliotheken(für C(++)) um Dateien zu komprimieren und dekrompimieren?



  • Grob gesagt:
    Die Packalgorithmen suchen nach Ähnlichkeiten/Redundanz in den zu verkleinernden Daten und fassen das irgendwie zusammen (Datenkompression).

    Freie (C-)Bibliotheken sind da u.a. zlib und bzip2.



  • JustAnotherNoob schrieb:

    Hi
    Wie schaffen es Programme wie WinRar eigentlich, ohne Informationsverlust die Datei zu verkleinern

    Übrigens ist klar, dass nicht jede Datei verkleinert werden kann, wenn es keinen Verlust gibt.



  • Ribosom schrieb:

    JustAnotherNoob schrieb:

    Hi
    Wie schaffen es Programme wie WinRar eigentlich, ohne Informationsverlust die Datei zu verkleinern

    Übrigens ist klar, dass nicht jede Datei verkleinert werden kann, wenn es keinen Verlust gibt.

    lustigerweise schon - denn man extrahiert information. im prinzip kann ich eine unendlichgroße lookup table machen und die datei nur über den index in der table wieder herstellen 😉

    ein interessantes thema sind da zB illegal primes 😉



  • Shade Of Mine schrieb:

    Ribosom schrieb:

    JustAnotherNoob schrieb:

    Hi
    Wie schaffen es Programme wie WinRar eigentlich, ohne Informationsverlust die Datei zu verkleinern

    Übrigens ist klar, dass nicht jede Datei verkleinert werden kann, wenn es keinen Verlust gibt.

    lustigerweise schon - denn man extrahiert information. im prinzip kann ich eine unendlichgroße lookup table machen und die datei nur über den index in der table wieder herstellen 😉

    ein interessantes thema sind da zB illegal primes 😉

    Kannst du mal so ne illegale Primzahl nennen, natürlich nur wenn du dann keinen Ärger mit der Justiz bekommst.



  • Shade Of Mine schrieb:

    lustigerweise schon - denn man extrahiert information. im prinzip kann ich eine unendlichgroße lookup table machen und die datei nur über den index in der table wieder herstellen 😉

    Aha? Wenn ich also die 2^n möglichen dateien mit n bits in die schöne lookup-table eingetragen hab, wie viele bits muß denn da mein index haben, wenn ich auch jede der 2^n möglichen stellen erreichen möchte?



  • Ich glaube, man kann ziemlich gut an der Huffman-Kodierung [1] erkennen, wie Kompressions-Programme arbeiten.

    [1] http://de.wikipedia.org/wiki/Huffman-Kodierung





  • Shade Of Mine schrieb:

    Ribosom schrieb:

    JustAnotherNoob schrieb:

    Hi
    Wie schaffen es Programme wie WinRar eigentlich, ohne Informationsverlust die Datei zu verkleinern

    Übrigens ist klar, dass nicht jede Datei verkleinert werden kann, wenn es keinen Verlust gibt.

    lustigerweise schon - denn man extrahiert information. im prinzip kann ich eine unendlichgroße lookup table machen und die datei nur über den index in der table wieder herstellen 😉

    ein interessantes thema sind da zB illegal primes 😉

    nö, fast jeder index deiner lookup table wäre größer als der inhalt der datei.
    (angenommen, was du sagst wäre möglich, dann könnte ich den index wieder mit der lookup table packen und den index wieder usw. und jeder index würde kleiner werden. das bedeutet also ich kann jede bel. information in einem bit verpacken.)


Anmelden zum Antworten