Подтвердить что ты не робот

Алгоритмы сжатия данных

Мне было интересно, есть ли у кого-нибудь список алгоритмов сжатия данных. Я вообще ничего не знаю о сжатии данных, и я надеялся узнать больше о разных алгоритмах и посмотреть, какие из них самые новейшие и еще не разработаны на многих ASIC.

Я надеюсь реализовать ASIC для сжатия данных, который не зависит от типа входящих данных (аудио, видео, изображения и т.д.).

Если мой вопрос слишком открыт, сообщите мне, и я передумаю. Спасибо вам

4b9b3361

Ответ 1

Существует тонна алгоритмов сжатия. Здесь вам нужен алгоритм сжатия без потерь. Алгоритм сжатия без потерь сжимает данные таким образом, что их можно распаковать, чтобы достичь именно того, что было дано перед сжатием. Противоположным будет алгоритм сжатия с потерями. Lossy compression может удалить данные из файла. Изображения PNG используют сжатие без потерь, в то время как изображения JPEG могут и часто используют сжатие с потерями.

Некоторые из наиболее широко известных алгоритмов сжатия включают в себя:

ZIP-архивы используют комбинацию кодирования Хаффмана и LZ77, чтобы обеспечить быстрое сжатие и время декомпрессии и достаточно хорошие коэффициенты сжатия.

LZ77 в значительной степени является обобщенной формой RLE, и он часто дает гораздо лучшие результаты.

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

aaaaaaaabbbbbcccdd

Типичная реализация Хаффмана приведет к следующей карте:

Bits Character
   0         a
  10         b
 110         c
1110         d

Таким образом, файл будет сжат до этого:

00000000 10101010 10110110 11011101 11000000
                                       ^^^^^
                              Padding bits required

18 байт опускаются до 5. Конечно, таблица должна быть включена в файл. Этот алгоритм работает лучше с большим количеством данных: P

Alex Allain хорошая статья по алгоритму сжатия Хаффмана в случае, если Wiki не хватает.

Не стесняйтесь запрашивать дополнительную информацию. Эта тема довольно широк.

Ответ 2

Существует множество алгоритмов сжатия данных. Если вы ищете что-то энциклопедическое, я рекомендую "Handbook of Data Compression" от Salomon и др., Который примерно такой же всеобъемлющий, как вы, вероятно, получите (и имеет хорошие разделы о принципах и практике сжатия данных, а также).

Мое лучшее предположение заключается в том, что сжатие на базе ASIC обычно реализуется для конкретного приложения или как специализированный элемент SoC, а не как автономный компрессионный чип. Я также сомневаюсь, что поиск "последнего и самого большого" формата сжатия - это путь сюда - я бы ожидал, что стандартизация, зрелость и пригодность для конкретной цели станут более важными.

Ответ 4

Моя статья Обзор архитектурных подходов для сжатия данных в кеш-памяти и основных системах памяти (Постоянная ссылка здесь) рассмотрены многие алгоритмы сжатия, а также методы их использования в современных процессорах. В нем рассматриваются алгоритмы и методы компрессионного сжатия как для исследовательского, так и для коммерческого уровня, поэтому вы можете найти тот, который еще не реализован в ASIC.