Jump to content

Различие данных

В информатике и теории информации различие данных или дифференциальное сжатие дает техническое описание разницы между двумя наборами данных — источником и целью. Формально, алгоритм дифференцирования данных принимает в качестве входных исходные данные и целевые данные и создает разностные данные, так что, учитывая исходные данные и разностные данные, можно реконструировать целевые данные (« исправление » источника с разницей для создания целевых данных). .

Одним из наиболее известных примеров дифференцирования данных является утилита diff , которая создает построчные различия текстовых файлов (а в некоторых реализациях и двоичных файлов , таким образом являясь инструментом дифференцирования общего назначения). Различие обычных двоичных файлов относится к категории дельта-кодирования , широко используемым примером является алгоритм, используемый в rsync . Стандартизированным общим форматом разностей является VCDIFF , реализованный в таких утилитах, как Xdelta версии 3. Высокоэффективной (небольшие файлы исправлений) программой разностей является bsdiff, которая использует bzip2 в качестве последнего этапа сжатия сгенерированной разности. [1]

Обеспокоенность

[ редактировать ]

Основными проблемами при различении данных являются удобство использования и эффективность использования пространства (размер патча).

Если кто-то просто желает реконструировать цель с учетом источника и исправления, можно просто включить всю цель в исправление и «применить» исправление, отбросив источник и выведя цель, которая была включена в исправление; аналогично, если источник и цель имеют одинаковый размер, можно создать простой патч, выполнив XOR для источника и цели. В обоих случаях патч будет такого же размера, как и цель. Как показывают эти примеры, если единственной проблемой является реконструкция цели, это легко сделать за счет большого патча, а основной проблемой при двоичном дифференцировании общего назначения является уменьшение размера патча.

Особенно в отношении структурированных данных возникают другие проблемы, которые в основном подпадают под «удобство использования» — например, если сравниваются два документа, обычно хочется знать, какие разделы были изменены, или если некоторые разделы были перемещены — нужно понять , чем отличаются документы. Например, «здесь слово «кошка» заменено на «собака», а пункт 13 перенесен в пункт 14». Можно также захотеть иметь надежные различия — например, если два документа A и B различаются в параграфе 13, можно применить это исправление, даже если кто-то изменил параграф 7 документа A. Примером этого является diff. , который показывает, какие строки были изменены и где формат контекста обеспечивает надежность и удобочитаемость для человека.

Другие проблемы включают вычислительную эффективность, а также сжатие данных: поиск небольшого патча может занять очень много времени и памяти.

Наилучшие результаты достигаются тогда, когда вы знаете сравниваемые данные и другие ограничения: diff предназначен для строковых текстовых файлов, особенно исходного кода, и лучше всего работает для них; алгоритм rsync используется на основе того, что источник и цель находятся в сети друг от друга, а связь медленная, поэтому он сводит к минимуму данные, которые необходимо передать; а обновления для Google Chrome используют алгоритм, адаптированный к архивному и исполняемому формату данных программы. [2] [3]

Соединение со сжатием данных

[ редактировать ]

Сжатие данных можно рассматривать как частный случай различия данных. [4] [5] – Различие данных состоит из создания разницы с учетом источника и цели , при этом исправление создает цель с учетом источника и разницы, в то время как сжатие данных состоит из создания сжатого файла с учетом цели, а распаковка состоит из создания цели с учетом только сжатый файл. Таким образом, можно рассматривать сжатие данных как различие данных с пустыми исходными данными, причем сжатый файл соответствует «отличию от ничего». Это то же самое, что рассматривать абсолютную энтропию (соответствующую сжатию данных) как частный случай относительной энтропии (соответствующей различению данных) при отсутствии исходных данных.

Если кто-то хочет подчеркнуть связь, можно использовать термин «дифференциальное сжатие» для обозначения различия данных.

Словарь, переводящий терминологию двух полей, имеет вид:

сжатие различие
никто источник
несжатый цель
сжатый разница, дельта
сжатие различие
декомпрессия исправление
  1. ^ Колин Персиваль , Наивные различия исполняемого кода, http://www.daemonology.net/bsdiff/ , 2003.
  2. ^ Блог Chromium: Чем меньше, тем быстрее (и безопаснее)
  3. ^ Обновления программного обеспечения: Кабачки (Проекты Chromium)
  4. ^ RFC   3284
  5. ^ Корн, Д.Г.; Во, КП (1995), Б. Кришнамурти (редактор), Vdelta: дифференцирование и сжатие , Практическое многоразовое программное обеспечение Unix, John Wiley & Sons
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 6efbfa139c46e680cd71b11cf79a7008__1709668500
URL1:https://arc.ask3.ru/arc/aa/6e/08/6efbfa139c46e680cd71b11cf79a7008.html
Заголовок, (Title) документа по адресу, URL1:
Data differencing - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)