Reddit – SiliconValleyHBO – Versteht jemand konzeptionell die Kompression in der Mitte?
Es ist nicht real, es ist erfunden.
Verlustfreie Datenkomprimierungsalgorithmen können die Komprimierung nicht für alle Eingabedatensätze garantieren. Mit anderen Worten, für jeden verlustfreien Datenkomprimierungsalgorithmus gibt es einen Eingabedatensatz, der bei der Verarbeitung durch den Algorithmus nicht kleiner wird, und für jeden verlustfreien Datenkomprimierungsalgorithmus, der mindestens eine Datei verkleinert, gibt es mindestens eine Datei, die größer wird. Dies lässt sich mit der Elementarmathematik leicht anhand eines Zählarguments wie folgt beweisen:
Angenommen, jede Datei wird als Zeichenfolge von Bits beliebiger Länge dargestellt.Angenommen, es gibt einen Komprimierungsalgorithmus, der jede Datei in eine Ausgabedatei umwandelt, die nicht länger als die Originaldatei ist, und dass mindestens eine Datei in eine Ausgabedatei komprimiert wird, die kürzer als die Originaldatei ist.
Sei M die kleinste Zahl, so dass es eine Datei F mit der Länge M Bits gibt, die auf etwas Kürzeres komprimiert wird. Sei N die Länge (in Bits) der komprimierten Version von F.
Da N<M , behält jede Datei der Länge N während der Komprimierung ihre Größe. Es gibt 2N solcher Dateien. Zusammen mit F werden dadurch 2N + 1-Dateien erstellt, die alle in eine der 2N-Dateien der Länge N komprimiert werden.
Aber 2N ist kleiner als 2N+1, daher muss nach dem Pigeonhole-Prinzip eine Datei der Länge N vorhanden sein, die gleichzeitig die Ausgabe der Komprimierungsfunktion an zwei verschiedenen Eingängen ist. Diese Datei kann nicht zuverlässig dekomprimiert werden (welches der beiden Originale sollte das ergeben?), was der Annahme widerspricht, dass der Algorithmus verlustfrei war.
Wir müssen daher zu dem Schluss kommen, dass unsere ursprüngliche Hypothese (dass die Komprimierungsfunktion keine Datei länger macht) notwendigerweise unwahr ist.
https://en.wikipedia.org/wiki/Lossless_compression#Limitations
https://en.wikipedia.org/wiki/Kolmogorov_complexity