Архивирование данных — принцип кодирования символов


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

Рассмотрим простейший принцип архивации:

Он состоит в том, что в файле выявляются повторяющиеся символы или группы символов, после чего несколько повторяющихся экземпляров заменяются одним с коэффициентом повтора, например:

ААААВВВ = 4АЗВ (коэффициент уплотнения 4:7).

Более сложный метод архивации:

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

Существуют комбинированные технологии, основанные сразу на нескольких принципах.

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

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

Кроме симметричных, существуют и несимметричные алгоритмы. Они могут приводить к определенной потере информации, когда распакованный файл не тождественен исходному. Такие алгоритмы нельзя применять к текстам, документам и программам, но их нередко используют для сжатия графики, музыки и видео. Наиболее известные алгоритмы: JPEG (. JPG — графика) и MPEG (.MPG и. MP4 — видео; .MP3 — музыка).

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

Конечно, это грубая модель, но она должна быть понятной. Из-за того, что запоминается не изображение, а формулы, его описывающие, экономия при сжатии может превышать 90%, но зато восстановить абсолютно точную копию исходного файла уже невозможно — происходит потеря части информации.

Кстати, эффект от применения технологии JPEG очень сильно проявляется на цветных фотографиях, а на черно-белых иллюстрациях он намного меньше.

К технологии JPEG близка технология MPEG, разработанная для видеоматериалов. Она дает еще более высокую степень сжатия. Грубо говоря, каждый кадр видеоряда рассматривается как отдельная картинка, но в кадре кодируется не вся его графика, а только характерные отличия от предыдущего кадра. Поскольку в видеофильмах соседние кадры обычно очень похожи друг на друга, эффект от сжатия очень большой. Эта технология тоже несимметричная и приводит к определенной потере информации (например всем известные квадратики на пиратских дисках) ;).

Если вы приобретали фильмы в формате .MP4 и просматривали их, то могли заметить, что качество изображения в фильмах значительно различается. Здесь роль играет не только качество исходной записи, для которой применяли сжатие, но и настройки алгоритма сжатия.

P.S. О том, почему возникает потребность в архивации можно почитать в статье: архивация данных.

Подпишитесь на обновления и новости сайта и следующий анонс придет на Ваш электронный адрес:

P.S. Желаю Вам никогда не попадаться на уловки мошенников.

 С Уважением, Никитин Владислав.

Друзья, поделитесь информацией в социальных сетях:


Обсуждение: оставлено 4 коммент.

  1. Екатерина

    Почему-то, когда я пытаюсь сжать папки с картинками, то они почти не меняются в размере. Может я делаю что то не так?

    Ответить
    1. Владислав Никитин

      Этот момент я уже описывал подробно, почитайте статью: принцип кодирования, в комментарии невозможно ответить

      Ответить
      1. Ильнур

        Если допустим сжать архив с фотографиями, то это повлияет на качество самих фоток?-)

        Ответить
        1. Владислав Никитин

          На качество не повлияет, так как фотографии это единственный вид документа, который практически не сжимается.

          Ответить

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

© 2017 Компьютер-Интернет-Бизнес  ·