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).
-
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.
-
Oder auch etwas einfachers
http://de.wikipedia.org/wiki/Lauflängenkodierung
-
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.)