Codage différentiel

Cet article est une ébauche concernant l’informatique.

Vous pouvez partager vos connaissances en l’améliorant (comment ?) selon les recommandations des projets correspondants.

Le codage différentiel (appelé aussi compression delta) est une techniques de compression de données sans perte consistant à transformer des données par la série des différences entre données successives. Ce type de codage est particulièrement efficace lorsque les données sont stockées avec leur historique, comme le font les logiciels de gestion de versions.

Implémentation en C

Le code ci-dessous, en langage C, est une implémentation « naïve » de la compression (et décompression) delta:

void
delta_encode (char *buffer, const unsigned int length)
{
 char delta = 0;
 char original;
 unsigned int i;
 for (i = 0; i < length; ++i)
 {
 original = buffer[i];
 buffer[i] -= delta;
 delta = original;
 }
}

void
delta_decode (char *buffer, const unsigned int length)
{
 char delta = 0;
 unsigned int i;
 for (i = 0; i < length; ++i)
 {
 buffer[i] += delta;
 delta = buffer[i];
 }
}

Exemples d'applications

Le codage différentiel en HTTP

Un exemple d'utilisation du codage différentiel est la RFC 3229[1], « Delta Encoding in HTTP » (littéralement « Codage différentiel en HTTP »), qui suggère que les serveurs HTTP devraient être capable de transmettre les mises à jour des pages Web sous forme de différences entre les versions (deltas), dans le but de réduire le trafic Internet généré, étant donné que la plupart des pages n'évoluent que très lentement, et ne sont pas totalement modifiées à chaque mise à jour.

VCDIFF

VCDIFF est un format standard de codage différentiel, décrit dans la RFC 3284[2]. Xdelta et open-vcdiff sont des exemples de logiciels libres implémentant ce format.

GDIFF

Le Generic Diff Format (GDIFF) est un autre format de codage différentiel. Il a été proposé au W3C en 1997[3]. Dans ce nombreux cas, VCDIFF produit un meilleur taux de compression que GDIFF.

Diff

Pour un article plus général, voir Diff.

Diff est un outil de comparaison de fichiers principalement utilisé pour les fichiers texte.

Voir aussi

Articles connexes

Liens externes

  • RFC 3229[1] – Delta Encoding in HTTP

Références

  1. a et b (en) Request for comments no 3229
  2. (en) Request for comments no 3284
  3. Generic Diff Format Specification
v · m
Sans perte
Codage entropique
Dictionnaire
Modélisation de contextes
Techniques hybrides
Autres Codage par plages
Transformations
Formats de fichiers
Avec pertes
Codage par transformation Compression par ondelettes
Autres
Transformations
v · m
Libres
Gestion locale
Client-serveur
  • CVS (1990)
  • CVSNT (1992)
  • SVN (2000)
Décentralisé
  • GNU arch (2001)
  • Darcs (2002)
  • DCVS (2002)
  • SVK (2003)
  • Monotone (2003)
  • Codeville (2005)
  • Git (2005)
  • Mercurial (2005)
  • Bazaar (2005)
  • Fossil (2007)
  • Veracity (2011)
  • Pijul (2015)
Propriétaires
Gestion locale
Client-serveur
Décentralisé
Concepts
  • icône décorative Portail de la programmation informatique