А
Информатика·11 класскод 1.1·10 мин

Кодирование информации: условие Фано и объём данных

Префиксные коды, двоичное дерево кодов и расчёт объёма изображения и звука для заданий 4, 7 и 10.

Тренировать тему

Задания 4, 7 и 10 объединены общей идеей: информация дискретна, и её объём складывается из объёмов элементов. Различаются только элементы — символ, пиксель, звуковой отсчёт.

Условие Фано и обратное условие Фано

Условие Фано: никакое кодовое слово не является началом (префиксом) другого кодового слова. Обратное условие Фано: никакое кодовое слово не является окончанием другого. Выполнение любого из них гарантирует однозначное декодирование сообщения без разделителей.

Двоичное дерево кодов
корень
0 → А (код занят)
1
1011
Кодовые слова — только листья дерева. Если вершина занята кодом, всё её поддерево запрещено.
Объём данных

Текст: I = K · i, где i = ⌈log₂ N⌉ бит на символ. Растровое изображение: I = ширина · высота · i, где i — глубина цвета в битах, N = 2^i — число цветов. Звук: I = частота (Гц) · время (с) · разрядность (бит) · число каналов.

Объём растрового изображения
Iобъём, бит
=
W · Hчисло пикселей
·
iглубина цвета, бит на пиксель
Три множителя — и ни одного лишнего.
Порядок решения задания 7
Найти N
Число цветов из условия
Найти i
i = log₂N, при необходимости округлить вверх
Умножить
W · H · i — объём в битах
Перевести в байты
Разделить на 8
Перевести в Кбайт/Мбайт
Делить на 1024 нужное число раз
Единицы переводятся в самом конце, а не в середине расчёта.

Глубина цвета и палитра

Число цветов NГлубина i, битБайт на пиксельНазвание
210,125чёрно-белое
1640,5EGA
25681индексированная палитра
65536162High Color
16777216243True Color
Задание 4 ЕГЭ (условие Фано)

Условие: для кодирования букв А, Б, В, Г используются двоичные коды: А — 0, Б — 100, В — 101, Г — 110. Нужно закодировать ещё одну букву Д так, чтобы выполнялось условие Фано. Укажите кратчайшее возможное кодовое слово для Д. Если таких слов несколько, укажите то, которое имеет наименьшее числовое значение. Решение. 1) Проверим длину 1. Коды 0 и 1 не подходят: 0 уже занят буквой А, а 1 является началом кодов 100, 101, 110. 2) Длина 2. Варианты 00 и 01 начинаются с 0 — код А оказался бы их префиксом. Вариант 10 является префиксом кодов 100 и 101. Вариант 11 является префиксом кода 110. Не подходит ничего. 3) Длина 3. Перебираем: 000, 001, 010, 011 начинаются с 0 — не подходят. 100, 101, 110 заняты. Остаётся 111: код А (0) не является его префиксом, и 111 не является префиксом ни одного из существующих кодов. В бланк: 111

Задание 7 ЕГЭ (объём изображения)

Условие: несжатое растровое изображение размером 1024 × 768 пикселей сохраняется в файл с использованием палитры из 65 536 цветов. Определите минимальный размер файла в Кбайт (служебной информацией пренебречь). Решение. 1) N = 65536 = 2^16, значит i = 16 бит = 2 байта на пиксель. 2) Число пикселей: 1024 · 768 = 786 432. 3) Объём в байтах: 786432 · 2 = 1 572 864 байт. 4) В Кбайт: 1572864 : 1024 = 1536. В бланк: 1536

Ловушка: округление i вверх и «не менее»

Если число цветов не является степенью двойки (например, 100 цветов), то i = ⌈log₂100⌉ = 7 бит, а не 6,64: количество бит всегда целое и округляется вверх. То же с числом символов алфавита. Отдельно следите за формулировками «минимально возможный размер», «не менее», «наибольшее количество» — они определяют, вверх или вниз округлять итог. И помните: 1 Мбайт = 2^20 байт, а не 10^6.

Контроль решения
  • Проверено условие Фано для всех пар кодов, а не только для соседних
  • Среди кодов минимальной длины выбран наименьший по числовому значению
  • Глубина цвета i округлена вверх до целого числа бит
  • Формула объёма не содержит лишних множителей (моно — один канал)
  • Перевод в Кбайт и Мбайт выполнен делением на 1024
  • Итог округлён в ту сторону, которую требует формулировка условия
  • В бланке одно число или двоичный код без пробелов