Codifica delta: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
m Correggo dei wikilink.
 
(5 versioni intermedie di 5 utenti non mostrate)
Riga 1:
La '''codifica delta''' è un modo per immagazzinare o trasmettere [[dati]] usando le differenze tra i dati sequenziali piuttosto che sul file completo. A volte la [[codifica]] delta è chiamata '''compressione delta''', in particolare quando è richiesta la storia dei cambiamenti (per esempio nei progetti [[software]]).
 
Le differenze sono registrate in file discreti chiamati "delta" o "diff".
Riga 16:
Una ''delta diretta'', chiamata anche scelta, è una sequenza di operazioni elementari di scelta la quale, quando applicata ad una versione <math>v_1</math> restituisce un'altra versione <math>v_2</math> (si noti la corrispondenza con i transaction log nei database).
 
Una variante della codifica delta, che codifica le differenze tra [[prefissoPrefisso (linguistica)|prefissi]] o [[suffisso|suffissi]] di [[stringa (informatica)|stringhe]], viene chiamata [[codifica incrementale]]. Essa è particolarmente efficace per liste ordinate con piccole differenze tra le stringhe, come una lista di [[parola|parole]] da un [[dizionario]].
 
In una trasmissione in rete codificata mediante codifica delta dove soltanto una copia del file è disponibile a ciascun estremo del canale di comunicazione vengono utilizzati speciali [[codice di correzione errore|codici di controllo dell'errore]] per scoprire quali parti del file è cambiato a partire dalla versione precedente.
Riga 24:
Il seguente codice in [[C (linguaggio di programmazione)|C]] effettua una semplice codifica e decodifica delta.
 
<syntaxhighlight lang="c">
'''void''' delta_encode('''char''' *buffer, '''int''' length)
{
'''char''' t = 0;
'''char''' original;
'''int''' i;
'''for'''(i = 0; i < length; i++)
{
original = buffer[i];
Riga 37 ⟶ 38:
}
'''void''' delta_decode('''char''' *buffer, '''int''' length)
{
'''char''' t = 0;
'''int''' i;
'''for'''(i = 0; i < length; i++)
{
buffer[i] += t;
Riga 47 ⟶ 48:
}
}
</syntaxhighlight>
 
Un altro esempio d'uso della codifica delta è contenuto nella RFC 3229, "Codifica delta nell'[[Hyper TextHypertext Transfer Protocol|HTTP]]" ("Delta encoding in HTTP"), nella quale l'[[IETF]] propone che i server [[Hyper TextHypertext Transfer Protocol|HTTP]] debbano essere in grado di mandare gli aggiornamenti delle pagine Web in forma di differenza tra le versioni, il che dovrebbe ridurre il traffico di [[Internet]], visto che la maggior parte delle pagine cambiano lentamente nel tempo, piuttosto che essere riscritte ripetutamente:
 
:Questo documento descrive come la codifica delta possa essere supportata come un'estensione compatibile all'HTTP/1.1.
Riga 66 ⟶ 67:
* RFC 3229 - Delta Encoding in HTTP
* RFC 3284 - The VCDIFF Generic Differencing and Compression Data Format
 
 
[[Categoria:Algoritmi di compressione]]