Делта кодирането е

Делта кодиране(на английскиDelta encoding) е начин за представяне на данни като разлика (делта) между последователни данни вместо самите данни.

Вариант на делта кодиране, който кодира разликите между префикси или суфикси на низове, се нарича инкрементално кодиране. Той е особено ефективен за сортирани списъци с малки разлики между низове, като например списък с думи от речник.

При мрежово предаване с делта кодиране, където е налично само едно копие на файла във всеки край на комуникационния канал, се използват специални кодове за коригиране на грешки, за да се открие кои части от файла са се променили от предишната версия.

Делта кодирането се използва като предварителна стъпка за много алгоритми за компресиране, като RLE, и в обърнатите индекси на търсачките. Естеството на данните, които трябва да бъдат кодирани, значително влияе върху ефективността на компресията. Делта кодирането увеличава съотношението на компресия, когато данните имат малка или постоянна вариация (като градиент в изображение); за данни, генерирани от генератор на случайни числа с равномерно разпределение, коефициентът на компресия няма да се промени много.

Делта кодирането прави невъзможен произволен достъп до данни, тъй като за достъп до елемент от масив е необходимо да се сумират стойностите на всички предишни. Ако все пак е необходимо, се използва блокова версия на делта кодиране, в която се кодират блокове с определена дължина. Тогава е необходимо само да се сумират стойностите от началото на блока, към който принадлежи необходимият елемент, но не и целия файл. Размерът на блока се избира в зависимост от приложението, обикновено въз основа на резултатите от времето.

Разл. кодиране

Неделта кодирането трябва да се бърка с диф кодирането. Ако делта кодирането открие разликата между елементи от една и съща последователност, тогавакодирането на разликасравнява два различни източника на данни, като посочва разликите между тях. Diff кодирането е внедрено в стандартната помощна програма Unix diff и за намаляване на количеството интернет трафик в HTTP протокола съгласно RFC 3229.

Примери за изпълнение

Следният C код прилага проста форма на делта кодиране и декодиране на място: