2012-02-28 2 views
11

Предположим, у меня есть массив из 100 случайных чисел. Вместо того, чтобы хранить их в явном виде, я могу вместо этого сохранить первое и поместить расстояние между каждым последовательным целым числом.Что называется этим методом хранения?

Как называется этот метод?

Я знаю, что этот метод кажется совершенно бесполезным, но он может быть полезен для хранения данных 3D-модели, где последовательные вершины, хранящиеся рядом друг с другом, фактически очень близки: вместо использования 32 бит я мог бы использовать массив из 8 бит целое число.

+0

Я не понимаю, что вы подразумеваете под расстоянием между ними ... вы имеете в виду байты в памяти? Или разница между значением n и n + 1? – MGZero

+0

Звучит как [относительное кодирование] (http://www.newmediarepublic.com/dvideo/compression/adv05.html). –

+0

Он означает расстояние между числами. Существует математическое определение расстояния - это | a - b |. – Griwes

ответ

15

Я считаю, что вы ищете delta encoding:

Delta кодирование представляет собой способ хранения или передачи данных в виде разницы между последовательными данными ...

Возможно, самый простой пример хранения значения байтов как различия (дельта) между последовательными значениями, а не сами значения. Итак, вместо 2, 4, 6, 9, 7 мы будем хранить 2, 2, 2, 3, -2.

+1

Боковое замечание: я очень далек от того, чтобы быть экспертом, но я считаю, что многие современные кодеки сжатия цифрового видео используют эту концепцию для сжатия видео: сохранение кадра видео целиком, называемого ключевым кадром, а затем сохранение различий между двумя кадрами (с новым ключевым фреймом время от времени). – dotnetengineer

+1

@dotnetengineer Современные видеокодеки еще сложнее! Некоторые из них имеют три типа кадров: «L», которые являются автономными кадрами, «P», которые могут использовать предыдущие кадры, и «B», которые двунаправлены. Более того! Им даже не нужно использовать целые рамки, а пространственные области, называемые «ломтиками». Вот почему, если вы обрезаете H264 видео между L кадрами и не перекодируете его, вы видите до нескольких секунд странные цветные прямоугольники. – nwellcome

+0

@nwellcome Полезно знать :) Спасибо за разъяснение. Я предполагаю, что мой первоначальный момент, что _delta encoding_ является важной концепцией сжатия цифрового видео, по-прежнему правильна? – dotnetengineer

Смежные вопросы