Сжатие данных

Сжатие — процесс уменьшения физического размера блока данных. Так как изображения, как правило, описываются большим количеством данных, файлы изображений имеют большой размер. Поэтому графические данные часто подвергаются сжатию. Обычно каждый формат графического файла поддерживает какой-либо из методов (алгоритмов) сжатия. В большинстве случаев сжатие заключается в замене избыточной информации на ее более компактную форму. Сжатие бывает физическое и логическое. Различие между физическим и логическим сжатием заключается в методе получения более компактной формы данных. Физическое сжатие данных выполняется без учета содержащейся в них информации. Логическое сжатие, напротив, основано на логическом анализе информации. Примером логического сжатия может служить преобразование строки «Союз Советских Социалистических Республик» в аббревиатуру «СССР». Для графических данных логическое сжатие не применяется.

Методы сжатия бывают с потерями и без потерь. Когда данные сжимаются, а затем восстанавливаются (распаковываются), причем полученные данные полностью соответствуют исходной информации, то говорят, что имело, место сжатие без потерь. То есть при методе сжатия без потерь не должно происходить какого-либо изменения данных.

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

Некоторые наиболее распространенные методы сжатия.
- Упаковка пикселов. Метод заключается в компактной записи пикселов с глубиной I, 2 и 4 бита компактно в 8-битовые байты соответственно по 8, 4 и 2 штуки.
- Групповое кодирование (Run-Length Encoding, RLE) — является общим алгоритмом кодирования и применяется в таких растровых форматах, как BMP, TIFF, PCX.
- Алгоритм Lempel-Ziv-Welch (LZW) — применяется в форматах GIF, TIFF.
- Алгоритм JPEG, разработанный объединенной экспертной группой по фотографии, включает в себя целый набор методов сжатия. Базовая реализация JPEG применяет схему преобразования изображения по алгоритму дискретных косинус-преобразований с последующим кодированием методом Хаффмана.
- Фрактальное сжатие — математический процесс, используемый для кодирования растровых изображений в совокупность математических данных, которые описывают фрактальные (похожие, повторяющиеся) свойства изображения.

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

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

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

В настоящие время очень трудно найти хороший недорогой хост для своих web проектов. Порой приходиться изучить не одну ветку с комментариями по ним.


Интересные записи

Написать комментарий