Wie Funktioniert Die Datei-Komprimierung Funktioniert?

0
517

Software-Ingenieure haben immer neue Methoden entwickelt, mit der Montage eine Menge von Daten in einem kleinen Raum. Es war wahr, wenn unsere Festplatten waren klein, und das Aufkommen des Internets hat es gerade so geschafft Kritischer. Datei-Komprimierung spielt ein großer Teil in uns verbindet, dass wir uns weniger Daten gesendet, die Linie nach unten, so können wir schnellere downloads und mehr verbindungen auf den Netzwerken beschäftigt.

Also, Wie Funktioniert es?

Um diese Frage zu beantworten würde bedeuten, erklären einige sehr komplizierte Mathematik, sicherlich mehr als decken wir in diesem Artikel, aber Sie brauchen nicht genau zu verstehen, wie es funktioniert mathematisch, die Grundlagen zu verstehen.

Die beliebtesten Bibliotheken für die Komprimierung von text-verlassen Sie sich auf zwei Kompressions-algorithmen, mit beiden zur gleichen Zeit zu erreichen sehr hohe Kompressionsraten. Diese beiden algorithmen sind “LZ77” und “Huffman-Codierung.” Die Huffman-Codierung ist ziemlich kompliziert, und wir werden nicht ins detail gehen, auf dass man hier. In Erster Linie wird es verwendet einige Lust Mathe zu weisen kürzere binären codes der einzelnen Buchstaben, schrumpft die Dateigrößen in den Prozess. Wenn Sie mehr darüber erfahren möchten, Lesen Sie in diesem Artikel, wie der code funktioniert, oder diese Erklärer von Computerphile.

LZ77, auf der anderen Seite, ist relativ einfach und ist das, was wir reden über hier. Sie versucht zu entfernen, doppelte Wörter und ersetzen Sie Sie durch eine kleinere “Schlüssel” darstellt, das Wort.

Nehmen Sie dieses kurze Stück text zum Beispiel:

Der LZ77-Algorithmus Aussehen würde an diesem text erkennen, dass es wiederholt “howtogeek” drei mal, und ändern Sie diese:

Dann, wenn es Lesen will, den text wieder, es würde ersetzen Sie jede Instanz von (h) mit “howtogeek,” bringt uns zurück zu den ursprünglichen Satz.

Wir nennen Komprimierung wie diese “lossless”—die Daten, die Sie stellen, ist die gleiche wie die Daten, die Sie erhalten. Nichts ist verloren.

In der Realität, LZ77 nicht verwenden, eine Liste von Schlüsseln, sondern ersetzt die zweite und Dritte vorkommen mit einem link wieder in Erinnerung:

So, jetzt, wenn es um (h), es wird sich wieder um “howtogeek” und Lesen, statt.

Wenn Sie Interesse an einer detaillierteren Erklärung, dieses video von Computerphile ist ziemlich hilfreich.

Nun, das ist ein idealisiertes Beispiel. In Wirklichkeit, die meisten der text ist komprimiert, mit Tasten, die kleiner als nur ein paar Zeichen. Zum Beispiel das Wort “die” würde, komprimiert werden, auch wenn es scheint, in Worten wie “there”, “Ihre” und “Sie dann.” Mit wiederholtem text, können Sie einige verrückte Kompressionsraten. Nehmen Sie diese text-Datei mit dem Wort “howtogeek” wiederholt sich 100 mal. Die original-Datei wird der text drei kilobytes in der Größe. Wenn komprimiert, aber, es dauert nur bis 158 bytes. Das sind fast 95% Komprimierung.

Jetzt natürlich, das ist ein ziemlich extremes Beispiel, da hatten wir gerade das gleiche Wort wiederholt über und über. In der Allgemeinen Praxis, werden Sie wahrscheinlich bekommen, um 30-40% Stauchung mit einem Kompressions-Formate wie ZIP auf eine Datei, die hauptsächlich aus text.

Das LZ77-Algorithmus gilt für alle binären Daten, die durch die Art und Weise, und nicht nur der text, obwohl der text in der Regel leichter zu komprimieren ist durch, wie viele wiederholte Wörter, die meisten Sprachen verwenden. Eine Sprache wie Chinesisch vielleicht ein wenig schwerer zu komprimieren als Englisch, zum Beispiel.

Wie Funktioniert die Bild-und Video-Kompression Arbeiten?

Video-und audio-Komprimierung funktioniert sehr unterschiedlich. Im Gegensatz zum text, wo Sie haben, verlustfreie Kompression, und keine Daten verloren gehen, mit Bildern, die wir haben, was heißt “Verlustbehaftete Kompression”, wo Sie einige Daten verlieren. Und je mehr komprimiert wird, desto mehr Daten, die Sie verlieren.

Dies ist, was führt zu der schrecklichen aussehende JPEGs, die Personen hochgeladen haben, geteilt, und screenshotted mehrere Male. Jedes mal, wenn das Bild komprimiert wird, verliert es einige Daten.

Hier ist ein Beispiel. Dies ist ein screenshot den ich nahm, wurde nicht komprimiert alle.

Ich nahm dann das screenshot und steckte es in Photoshop mehrere Male, jedes mal den Export als JPEG-Dateien geringerer Qualität. Hier ist das Ergebnis.

Sieht ziemlich schlimm, oder?

Gut, das ist nur ein worst-case-Szenario, Export bei 0% JPEG-Qualität zu jeder Zeit. Zum Vergleich, hier ist eine 50% JPEG-Qualität, die fast nicht zu unterscheiden von der Quell-PNG-Bild, wenn Sie es sprengen und nehmen Sie einen Blick.

Die PNG für das Bild wurde auf 200 KB Größe, aber diese 50% Qualität JPEG ist nur 28 KB.

So wie spart man so viel Platz? Naja, der JPEG-Algorithmus ist ein Meisterstück der Technik. Die meisten Bilder speichern Sie eine Liste von zahlen, wobei jede Zahl, die ein einzelnes pixel.

JPEG hat keine dieser. Stattdessen speichert es die Bilder mit einem so genannten Diskreten Cosinus-Transformation, die eine Sammlung von Sinuswellen addiert, in unterschiedlichen Intensitäten. Es verwendet 64 verschiedene Gleichungen, aber die meisten von Ihnen nicht gewöhnt. Dies ist, was mit dem regler die Qualität für JPEG-Dateien in Photoshop und anderen Bild-apps-macht—wählen Sie, wie viele Gleichungen zu verwenden. Die apps, dann verwenden Sie die Huffman-Kodierung die Dateigröße zu reduzieren, noch weiter.

Dies gibt die JPEG-Bilder eine wahnsinnig hohe Kompressionsrate, reduziert werden können, dass eine Datei wäre mehreren Megabyte auf ein paar Kilobyte, je nach Qualität. Natürlich, wenn Sie es zu viel, Sie am Ende mit diesem:

Das Bild ist schrecklich. Aber kleinere Mengen der JPEG-Komprimierung kann einen erheblichen Einfluss auf die Dateigröße, und das macht die JPEG-sehr nützlich für die Bildkomprimierung auf websites. Die meisten Bilder, die Sie online sehen sind komprimiert zu sparen und download-Zeiten, vor allem für mobile Anwender mit schlechten Datenverbindungen. In der Tat, alle Bilder über How-To-Geek wurden komprimiert, um das laden der Seiten schneller, und Sie wahrscheinlich nie bemerkt.

Video Kompression

Video funktioniert ein wenig anders aus Bildern. Sie würden denken, dass Sie würde nur komprimieren jedes video-frame bei der Verwendung von JPEG, und Sie sicherlich tun, aber es gibt eine bessere Methode für video.

Wir verwenden so genannte “interframe compression”, berechnet die Veränderungen zwischen den einzelnen Frames und speichert nur diejenigen. So, zum Beispiel, wenn Sie ein relativ immer noch erschossen, die nimmt mehrere Sekunden in einem video, viel Platz wird gespart, weil der Kompressions-Algorithmus nicht speichern müssen alle das Zeug in der Szene nicht ändern. Interframe-Komprimierung ist der Hauptgrund, wir haben digitales Fernsehen und web-video überhaupt. Ohne videos wäre Hunderte von Gigabyte, mehr als die Durchschnittliche Festplatte-Größe in 2005, wenn YouTube gestartet.

Auch, da die interframe-Kompression funktioniert am besten mit überwiegend stationäre video, dies ist der Grund, warum konfetti Ruinen video-Qualität.

Hinweis: GIF nicht, das ist, warum animierte GIFs sind oft sehr kurz und klein, aber immer noch eine ziemlich große Dateigröße.

Eine andere Sache im Auge zu behalten, über video ist seine bitrate die Menge an Daten erlaubt, in jeder Sekunde. Wenn Ihr die bitrate von 200 kb/s, zum Beispiel, wird Ihr video sehen ziemlich schlecht. Qualität geht die bitrate hoch geht, aber nach ein paar MB pro Sekunde, Sie erhalten Wirkungskraft.

Dies ist ein vergrößertes Einzelbild aus einem video von einer Qualle. Die auf der linken Seite ist bei 3Mb/s, und die auf der rechten Seite ist 100Mb/s.

Einen 30fachen Anstieg der Dateigröße, aber nicht viel mehr an Qualität. Im Allgemeinen YouTube-videos sitzen, um 2-10Mb/s, je nach Verbindung, wie alles, was mehr wäre wohl auch nicht aufgefallen.

Diese demo funktioniert besser mit dem eigentlichen video, also, wenn Sie wollen, check it out für sich selbst, können Sie die gleiche bitrate test-videos werden hier.

Audio-Kompression

Audio-Kompression verhält sich sehr ähnlich zum text-und Bild-Kompression. Wo JPEG entfernt detail aus einem Bild, dass Sie nicht sehen, audio-Kompression, für sounds. Können Sie nicht brauchen, zu hören, das Knarren des plektrum auf der saite, wenn die tatsächliche Gitarre ist viel, viel lauter.

MP3 verwendet auch die bitrate, angefangen von der low-end-48-und 96 kbit / s (das untere Ende) auf 128 und 240kbps (ziemlich gut) bis 320 Kbps (high-end-audio), und Sie werden wahrscheinlich hören nur den Unterschied mit einem außergewöhnlich guten Kopfhörer (und Ohren).

Es gibt auch verlustfreie Kompression, codecs für audio—und das größte ist die FLAC—was nutzt die LZ77-Codierung zu liefern ausschließlich lossless audio. Einige Leute schwören FLAC ist eine perfekte audio-Qualität, aber mit der Verbreitung von MP3, es scheint, die meisten Leute entweder nicht sagen kann oder nichts dagegen haben, den Unterschied.