La compressione delta è una compressione dei valori codificati delta. La codifica delta è una trasformazione che produce una diversa distribuzione statistica dei numeri. Se la distribuzione è favorevole all'algoritmo di compressione scelto, riduce la quantità di dati. Funziona molto bene in un sistema come un gioco in cui le entità si muovono solo leggermente tra due aggiornamenti.
Supponiamo che tu abbia 100 entità in 2D. Su una griglia di grandi dimensioni, 512 x 512. Considerando solo numeri interi a titolo di esempio. Sono due numeri interi per entità o 200 numeri.
Tra due aggiornamenti, tutte le nostre posizioni cambiano di 0, 1, -1, 2 o -2. Ci sono state 100 istanze di 0, 33 istanze di 1 e -1 e solo 17 istanze di 2 e -2. Questo è abbastanza comune. Scegliamo la codifica Huffman per la compressione.
L'albero di Huffman per questo sarà:
0 0
-1 100
1 101
2 110
-2 1110
Tutti i tuoi 0 saranno codificati come un singolo bit. Sono solo 100 bit. 66 valori verranno codificati come 3 bit e solo 34 valori come 4 bit. Sono 434 bit o 55 byte. Inoltre un piccolo overhead per salvare il nostro albero di mappatura, in quanto l'albero è minuscolo. Si noti che per codificare 5 numeri, sono necessari 3 bit. Abbiamo scambiato qui la possibilità di usare 1 bit per '0' per la necessità di usare 4 bit per '-2'.
Ora confronta questo con l'invio di 200 numeri arbitrari. Se le tue entità non possono essere sulla stessa tessera, sei quasi sicuro di ottenere una cattiva distribuzione statistica. Il caso migliore sarebbe 100 numeri univoci (tutti sulla stessa X con Y diversa). Questo è almeno 7 bit per numero (175 byte) e molto difficile per qualsiasi algoritmo di compressione.
La compressione delta funziona nel caso speciale in cui le entità cambiano solo leggermente. Se hai molte modifiche uniche, la codifica delta non ti aiuterà.
Si noti che la codifica e la compressione delta vengono utilizzate anche in altre situazioni con altre trasformazioni.
MPEG divide l'immagine in piccoli quadrati e se parte dell'immagine si sposta, vengono salvati solo i movimenti e le modifiche. In un film a 25 fps, molti cambiamenti tra i fotogrammi sono molto piccoli. Ancora una volta, codifica delta + compressione. Funziona meglio per le scene statiche.