2017-10-25 4 views
0

Ich fange an, Kompressoren zu lernen, und die Grundidee für generische Kompressoren ist es, in einem Wörterbuch ähnliche Artikel einzuführen, um die Größe des Ganzen zu reduzieren. Ein Beispiel mit Worten sei:....Würde ein Kompressor funktionieren, wenn es keine gleichen Elemente gibt?

„Ich bin Stapel overflow.I in Stack-Überlauf ist ich bin in Stapel Überlauf I in Stack-Überlauf am Hallo, ich bin in Stack-Überlauf Ich bin . im Stapelüberlauf. Ich bin im Stapelüberlauf. Ich bin im Stapelüberlauf. Tschüss. "

So im Wörterbuch haben wir:

A: "Ich bin Stapelüberlauf."

AAAAHello.AAAABye.

Würde eine Kompressorgröße reduzieren, wenn es keine ähnlichen Produkte sind? Oder ist es überhaupt möglich, dass es keine ähnlichen Gegenstände gibt?

Antwort

1

Ja, Text kann verlustfrei komprimiert werden, auch wenn es keine sich wiederholenden Strings gibt, solange die Symbole ungleichmäßig erscheinen. Wenn beispielsweise nur 36 der möglichen 256 Bytes in einer Nachricht verwendet werden, kann sie auf 65% ihrer Größe komprimiert werden.

Ja, natürlich ist es möglich, keine sich wiederholenden Strings zu haben.

+0

Die Strings ist nur eine "Methode", um zu erklären, wie ein Kompressor funktioniert. Also frage ich mit Elementen. Ist es möglich? Oder stellen Sie sich vor: "abcdefghijklmnopqrstuvwxyz" kann nicht komprimiert werden, oder? Das meine ich in einem größeren "Konzept". –

+1

Diese 26 Zeichen sind zu kurz, um von einem allgemeinen Komprimierer aufgrund des Overheads der Codebeschreibung komprimiert zu werden. Sie können jedoch einen Komprimierer nur für Kleinbuchstaben schreiben, der eine Folge von Kleinbuchstaben auf 59% der Originalgröße komprimiert. Eine lange Folge von Kleinbuchstaben, z.B. Mehrere K Bytes, ohne sich wiederholende Strings, werden mit einem Allzweckkompressor fast zu demselben Grad komprimiert. –

Verwandte Themen