Кодирование и сжатие информации
💻 Информатика · 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 позволяет представить символы почти всех языков мира.