Различные алгоритмы и методы сжатия данных

Из новостей FIDO, 23 апреля 1990 Вокруг нас разгорается пламя войны, в которой спорным вопросом является: чья программа компрессии данных является самой лучшей. Я решил тоже в ней поучаствовать и написать СВОЮ собственную программу. Вы конечно слышали про программы, которые схрустывают, глушат, ужимают, вдавливают, пакуют, дробят и т.д. Теперь есть программа TRASH (в мусор).

TRASH сжимает файл до наименьшего возможного размера: О байт! Ничто не сожмет файл лучше, чем TRASH. Атрибуты дата/время не затрагиваются, и поскольку файл имеет нулевую длину, он совсем не займет место на вашем винчестере! И TRASH очень быстра. Ваши файлы будут скомканы за микросекунды! Вы потратите больше времени вглядываясь в задаваемые параметры, в то время как файл будет уже обработан. Это предпродажная версия моей программы. Вы можете хранить и испытывать ее. Я бы вам рекомендовал сделать резервную копию ваших файлов перед тем, как вы впервые запустите мой TRASH, хотя...

Следующая версия TRASH будет иметь графический интерфейс и принимать кредитные карты. TRASH C:\PAYROOL\*.* ... и работать с целыми дисками TRUSH D: ...и быть первой, чтобы заблокировать сбрасывание в мусор вашей системы НАРОЧНО! TRUSH ALL Мы даже надеемся научить нашу программу восстанавливать 3aTRASHeHные файлы! Второй тип компьютерных данных - это оцифрованные изображения: фотографии, рисунки, картинки, графики и т.п. Цифровое изображение - это прямоугольная матрица окрашенных точек, называемых пикселами. Каждый пиксел представляется в компьютере с помощью цветового кода. (До конца этого параграфа термин «пиксел» используется только для цветового кода).

Для упрощения цифровой обработки изображений предполагается, что все пикселы имеют один и тот же размер. Размер пиксела зависит от числа цветов в изображении, которое, обычно, является степенью 2. Имеется два вида избыточности в цифровых изображениях. Первый вид похож на избыточность в текстовом файле. В каждом неслучайном изображении некоторые цвета могут преобладать, а другие встречаться редко. Такая избыточность может быть удалена с помощью кодов переменной длины, присваиваемых разным пикселам, точно также как и при сжатии текстовых файлов.

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

И только на горизонте, там, где горы встречаются с небом, соседние пикселы могут иметь совершенно разные цвета. Таким образом, отдельные пикселы не являются совершенно независимыми. Можно сказать, что ближайшие пикселы изображения коррелируют между собой. Независимо от метода, которым сжимается изображение, эффективность его компрессии определяется прежде всего количеством избыточности, содержащимся в нем. Предельный случай - это однотонное изображение. Оно имеет максимальную избыточность, потому что соседние пикселы тождественны. Понятно, такое изображение не интересно с практической точки зрения, оно, если встречается, то крайне редко.

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

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

Категория:
-----------------------------