Сжатие двоичных данных - PullRequest
       6

Сжатие двоичных данных

1 голос
/ 13 сентября 2011

На одном из рабочих этапов моего алгоритма у меня есть большой массив двоичных данных, который я хочу сжать.
Какой алгоритм (или может быть, стандартный класс) вы можете посоветовать использовать для сжатия данных какнасколько эффективно?
РЕДАКТИРОВАТЬ:
Данные сначала представлены как byte[n] из 0 и 1.Затем я соединяю каждые 8 ​​байтов в 1 и получаю массив byte[n/8].

Ответы [ 2 ]

7 голосов
/ 13 сентября 2011

GZipStream или DeflateStream - довольно стандартные классы, используемые в таких ситуациях.

Очевидно, что в зависимости от двоичных данных , которые вы пытаетесь сжать, у вас будет лучше или хуже степень сжатия. Например, если вы пытаетесь сжать изображение JPEG с этими алгоритмами Вы не можете ожидать очень хорошую степень сжатия. С другой стороны, если двоичные данные представляют текст, они будут хорошо сжиматься.

1 голос
/ 13 сентября 2011

Я добавлю DotNetZip и SharpZLib . «Базовые» библиотеки .NET (GZipStream / DeflateStream) основаны на потоке (поэтому они сжимают один поток данных. Поток - это не файл, но предположим, что content файл может быть прочитан как поток). DotNetZip больше похож на классический PkZip/WinZip/WinRar

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...