Articles

Reddit-SiliconValleyHBO-Qualcuno concettualmente capire middle out compressione?

Non è reale, è inventato.

Gli algoritmi di compressione dati senza perdita non possono garantire la compressione per tutti i set di dati di input. In altre parole, per qualsiasi algoritmo di compressione dati senza perdita, ci sarà un set di dati di input che non diventa più piccolo quando elaborato dall’algoritmo, e per qualsiasi algoritmo di compressione dati senza perdita che rende almeno un file più piccolo, ci sarà almeno un file che rende più grande. Questo è facilmente dimostrato con la matematica elementare usando un argomento di conteggio, come segue:

Supponiamo che ogni file sia rappresentato come una stringa di bit di una lunghezza arbitraria.Supponiamo che esista un algoritmo di compressione che trasforma ogni file in un file di output non più lungo del file originale e che almeno un file venga compresso in un file di output più breve del file originale.

Sia M il numero minimo tale che ci sia un file F con lunghezza M bit che si comprime in qualcosa di più breve. Sia N la lunghezza (in bit) della versione compressa di F.

Poiché N < M, ogni file di lunghezza N mantiene la sua dimensione durante la compressione. Ci sono 2N tali file. Insieme a F, questo rende i file 2N+1 che tutti si comprimono in uno dei file 2N di lunghezza N.

Ma 2N è più piccolo di 2N+1, quindi per il principio pigeonhole ci deve essere un file di lunghezza N che è contemporaneamente l’output della funzione di compressione su due input diversi. Quel file non può essere decompresso in modo affidabile (quale dei due originali dovrebbe produrre?), che contraddice l’ipotesi che l’algoritmo fosse senza perdita di dati.

Dobbiamo quindi concludere che la nostra ipotesi originale (che la funzione di compressione non renda più file) è necessariamente falsa.

https://en.wikipedia.org/wiki/Lossless_compression#Limitations

https://en.wikipedia.org/wiki/Kolmogorov_complexity