P
pro·school.ru
Каталог школ

Кодирование и сжатие информации

💻 Информатика · 11 класс

Представление информации в компьютере

В компьютере любая информация — текст, звук, изображение — представлена последовательностью нулей и единиц. Кодирование — это представление информации в виде, удобном для хранения и передачи, по определённым правилам. Наименьшая единица информации — бит, он принимает значение 0 или 1. Восемь битов образуют байт.

Измерение объёма информации

Объём данных измеряют в байтах и более крупных единицах. Каждая следующая единица больше предыдущей в 1024 раза.

ЕдиницаСколько содержит
1 байт8 битов
1 килобайт1024 байта
1 мегабайт1024 килобайта
1 гигабайт1024 мегабайта

Если в алфавите N символов, то для кодирования одного символа нужно i битов, причём N = 2^i. Например, для 256 символов нужен ровно один байт, так как 256 = 2^8.

Сжатие информации

Сжатие — это уменьшение объёма данных за счёт устранения избыточности. Различают два вида сжатия.

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

Идея сжатия без потерь

Один из приёмов — заменять длинные повторы коротким описанием. Строку из двенадцати одинаковых символов можно записать как пару «символ и число повторов».

AAAAAAAAAAAA -> 12A

Другой приём — частым символам давать короткие коды, а редким длинные. Так работает кодирование переменной длины: текст, где часто встречается буква «о», займёт меньше места.

Частая ошибка: считать, что сжатие с потерями всегда хуже. Для фотографий и музыки оно даёт огромный выигрыш в объёме при незаметной для человека разнице, тогда как сжатие без потерь сжало бы их слабо.

Зачем нужны разные кодировки

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

Оценка объёма данных

Зная кодировку, можно вычислить объём текста. Если каждый символ занимает один байт, то страница из 40 строк по 60 символов займёт 40 * 60 = 2400 байтов. Похожим образом считают объём изображения: он равен числу точек, умноженному на число битов, отведённых на цвет одной точки. Чем больше точек и цветов, тем больше файл.

Помехоустойчивое кодирование

При передаче по сети данные могут искажаться помехами. Чтобы обнаруживать и исправлять ошибки, к данным добавляют избыточные проверочные биты. Простейший приём — бит чётности: к группе битов добавляют ещё один так, чтобы общее число единиц было чётным. Если на приёме чётность нарушена, значит произошла ошибка.

Кратко о главном

  • Кодирование — представление информации по правилам в удобном виде.
  • Объём измеряют в битах и байтах; единицы растут в 1024 раза.
  • Число битов на символ связано с мощностью алфавита формулой N = 2^i.
  • Сжатие бывает без потерь (точное восстановление) и с потерями.
  • Помехоустойчивое кодирование добавляет проверочные биты для поиска ошибок.
  • Кодировка Unicode позволяет представить символы почти всех языков мира.