Планирование уроков на учебный год (по учебнику К.Ю. Полякова, Е.А. Еремина, углубленный уровень)



Урок 24
§16. Сжатие данных




Содержание урока

Зачем и как сжимать данные?

Сжатие без потерь

Сжатие с потерями

Программы-архиваторы

Выводы. Интеллект-карта

Вопросы и задания

Практическая работа № 5 «Использование архиватора»


Зачем и как сжимать данные?


Ключевые слова:


• сжатие данных
• коэффициент сжатия
• сжатие без потерь
• сжатие с потерями
• архивация
• самораспаковывающийся архив
• программа-архиватор
• контрольная сумма


Для того чтобы сэкономить место на внешних носителях (жёстких дисках, «флэшках») или ускорить передачу данных по компьютерным сетям, можно сжать данные — уменьшить их информационный объём, сократить размер файла.

Как вы уже знаете, рисунки часто хранятся в сжатом виде. Кроме того, сжатие почти всегда используется при хранении и передаче звука и видео — упаковку и распаковку этих данных выполняют специальные программы-кодеки.

Покажем, как можно сжать данные, на простом примере. Есть файл, в котором в 8-битной кодировке записаны сначала 100 русских букв А, а потом — 100 букв Б (рис. 2.39).

Рис. 2.39

Рис. 2.39

Каждая буква на рис. 2.39 занимает 8 бит. Определите информационный объём файла в байтах.

Теперь запишем те же самые данные иначе: сначала количество повторений первого символа, а затем — сам первый символ, потом так же для второго символа (рис. 2.40).

Рис. 2.40

Рис. 2.40

Каждая ячейка на рис. 2.40 занимает 8 бит. Определите информационный объём файла в байтах.

Объём файла уменьшился, это значит, что мы сжали данные.

Коэффициент сжатия — это отношение размера исходного файла IO к размеру сжатого файла IСЖ: kсж = IO / IСЖ


Определите коэффициент сжатия файла в рассмотренном выше примере.


Почему же этот файл удалось так удачно сжать? Всё дело в том, что в нём были длинные цепочки повторяющихся символов, и мы применили алгоритм, который очень удачно их сжимает. Этот алгоритм называется кодированием цепочек одинаковых символов (по-английски — RLE 1) : Run Length Encoding).


1) Алгоритм RLE можно успешно использовать для сжатия рисунков, в которых большие области закрашены одним цветом.


В файле записаны 100 различных символов. Определите коэффициент сжатия файла с помощью алгоритма RLE. Что означает полученное число?

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

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

Следующая страница Сжатие без потерь



Cкачать материалы урока





Наверх