Codage de delta
plit
Le codage de delta de est une manière de stocker ou de transmettre les données sous forme de différences entre les données séquentielles plutôt que les fichiers complets. Le codage de delta s'appelle parfois la compression de delta de , en particulier où des histoires archivistiques des changements sont exigées (par exemple, dans le de logiciel projet .
Les différences sont enregistrées dans les dossiers discrets appelés le " ; deltas" ; ou " ; diffs" ; , après l'utilité de comparaison de dossier d'Unix , Diff . Puisque les changements sont souvent small< ! --Combien petit ? -->, le codage de delta réduit considérablement la redondance de données. Les collections de deltas uniques sont essentiellement espace-efficaces que leurs équivalents non-codés.
D'un point de vue logique la différence entre deux valeurs de données est l'information exigée pour obtenir une valeur de l'autre. La différence entre les valeurs identiques (sous une certaine équivalence en ) s'appelle souvent le 0 ou le l'élément neutre . Un bon delta devrait être le , ou ambigu minimal à moins qu'un élément d'une paire soit présent.
Peut-être l'exemple le plus simple stocke des valeurs des bytes comme différences (deltas) entre les valeurs séquentielles, plutôt que les valeurs elles-mêmes. Ainsi, au lieu de 2, 4, 6, 9, 7, nous stockerions 2, 2, 2, 3, -2. Ce n'est pas très utile une fois seul utilisé, mais il peut aider davantage de compression des données dans lesquelles les valeurs séquentielles se produisent souvent. Le format sain du 8SVX du IFF s'applique ce codage aux données saines brutes avant de s'appliquer la compression à lui. Malheureusement, pas même toute la compresse saine à 8 bits témoins meilleure quand le delta codé, et la rentabilité du codage de delta est encore plus petit pour les échantillons de 16 bits et meilleurs. Par conséquent, les algorithmes de compression choisissent souvent au delta codent seulement quand la compression est meilleure qu'en dehors. Cependant, dans le delta de compression visuelle les armatures peuvent considérablement réduire la taille d'armature, et sont employées dans pratiquement chaque codec de compression visuelle.
Un delta peut être défini de 2 manières, de delta symétrique de et de delta dirigé par . Un delta symétrique de peut être exprimé comme : &Delta de ; ( v 1, v 2) = ( v 1 \ v 2) &cup ; ( v 2 \ v 1), là où le v 1 et le v 2 représentent deux versions successives.
Un a dirigé le delta , également appelé un changement, est un ordre des opérations (élémentaires) de changement qui, une fois appliquées à un v 1 de version, rapportent un autre v 2 de version (noter la correspondance aux notations de transaction dans les bases de données).
Une variation du codage de delta qui code des différences entre le met en tête ou suffixes des cordes de que s'appelle le codage par accroissement . Elle est particulièrement efficace pour les listes assorties avec de petites différences entre les cordes, telles qu'une liste des mots d'un dictionnaire .
Dans le delta la transmission codée au-dessus d'un réseau où seulement une copie simple du dossier est disponible à chaque fin des codes de commande spéciaux d'erreur de de voie de transmission sont employées pour détecter quelles parties du dossier a changé depuis sa version préalable.
La nature des données à être influences codées l'efficacité d'un algorithme de compression particulier. Le codage de delta se comporte le plus bien quand les données ont la petite ou constante variation ; pour un ensemble de données non trié, il peut y avoir peu à aucune compression possible avec cette méthode.
Le code suivant du C exécute une forme simple de codage et de décodage de delta : < ! -- Oui, il est possible d'écrire plus petit/plus rapidement des fonctions ; mais ceux-ci sont donnés parce qu'elles sont facilement compréhensibles -->
delta_encode vide (*buffer de char, longueur d'international) { char t = 0 ; original de char ; international i ; pour (i=0 ; i < longueur ; ++i) { original = amortisseur ; amortisseur - = t ; t = original ; } } delta_decode vide (*buffer de char, longueur d'international) { char t = 0 ; international i ; pour (i=0 ; i < longueur ; ++i) { amortisseur += t ; t = amortisseur ; } }
Un autre exemple d'utilisation du codage de delta est RFC 3229, " ; Codage de delta dans HTTP" ; , qui propose que les serveurs de HTTP devraient pouvoir envoyer les pages Web mises à jour sous forme de différences entre les versions (deltas), qui devraient diminuer le trafic sur Internet, pendant que la plupart des pages changent lentement avec le temps, plutôt qu'étant complètement récrit à plusieurs reprises :
les
This documentent décrit comment le codage de delta peut être soutenu comme prolongation compatible à HTTP/1.
Les demandes
Many de HTTP (protocole de transport d'hypertexte) causent la récupération des exemples légèrement modifiés des ressources pour lesquelles le client prend déjà une entrée de cachette. La recherche a prouvé que de telles mises à jour de modification sont fréquentes, et que les modifications sont en général beaucoup plus petites que l'entité réelle. Dans ces cas-ci, le HTTP ferait une utilisation plus efficace de la largeur de bande de réseau s'il pourrait transférer une description minimale des changements, plutôt que le nouvel exemple entier du resource.
Voir également
Modulation en Delta Liste de du logiciel de codage de delta
problème de correction de Corde-à-corde de
.
| Random links: | Harare | William Allan Oldfield | Français le clown | Liste de films basés sur des bandes dessinées | Codificación_del_delta |