Алгоритм LZW и сжатие с потерями

Как словарь сжимает текст без потерь — и что выбрасывают JPEG и MP3. 11 класс, углублённый уровень — пара третья.

Уроки 5–6 поурочного плана: «Алгоритм LZW» и «Алгоритмы сжатия данных с потерями». Задачи на глубину цвета и битрейт — те же расчёты, что в задании 7 ЕГЭ про объём изображения и звука.

Словарное сжатие: идея

В тексте повторяются не только буквы, но и целые фразы. Если фразе дать номер, вместо неё можно записать один код.

Кодирование LZW по шагам

  1. взять с текущего места самую длинную фразу, которая уже есть в словаре;
  2. выдать её код;
  3. занести в словарь новую фразу: эта фраза + следующий символ;
  4. продолжить с символа, на котором остановились.

Декодирование LZW

Читаем коды по одному и выписываем фразы. Словарь декодер строит сам:

после каждой фразы, начиная со второй, в словарь добавляется предыдущая фраза + первая буква текущей.

Сколько бит на код

Все коды одной длины. Кодом из b бит можно пронумеровать 2b фраз.

2b ≥ N

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

Без потерь

RLE, Хаффман, LZW, ZIP, PNG, FLAC: данные восстанавливаются бит в бит. Годится для текста и программ.

С потерями

JPEG, MP3, AAC, MPEG-4: отбрасывается то, чего человек почти не замечает. Назад это не вернуть.

Глубина кодирования цвета

i бит на пиксель — 2i цветов. Объём изображения:

V = ширина · высота · i

Идеи JPEG

  1. Яркость и цвет отдельно. Изображение переводится в яркость Y и две цветовые составляющие Cb и Cr. Яркость хранится для каждого пикселя, цвет — одно значение на квадрат 2 × 2: к цвету глаз менее чувствителен.
  2. Блоки 8 × 8. Изображение делится на квадраты 8 × 8 пикселей, каждый обрабатывается отдельно.
  3. Квантование. Коэффициенты блока делятся на шаг и округляются — здесь и теряется информация; потом всё сжимается без потерь.

MP3 и битрейт

MP3 отбрасывает звуки, которых ухо не различает: тихие рядом с громкими, слишком высокие. Размер файла задаёт битрейт — сколько бит уходит на секунду звучания.

V = битрейт · время

Что делаем дальше

  1. Обзорный практикум — шесть задач, все сразу на странице, в любом порядке: кодирование и декодирование LZW, объём после LZW, глубина цвета, идеи JPEG, MP3 и форматы.
  2. LZW удобнее расписывать на черновике таблицей: фраза, код, в словарь.
  3. Ответ везде — целое число, без единиц: код, а не «48 Кбайт».

Ошибся — сразу виден разбор, а «Новые числа» дают ту же задачу с другими данными. Отметка: закрыто 6 из 6 — «5», 5 — «4», 3 или 4 — «3».

За работу

Практикум «Алгоритм LZW и сжатие с потерями» — в общей папке и на сайте. Не успел на уроке — пройди дома: вариант будет другой, сдаётся тем же кодом.

Карточку в тетрадь можно взять с собой: на ней LZW по шагам с примером, правило декодера, глубина цвета, идеи JPEG и MP3.

Материалы подготовлены с использованием технологий искусственного интеллекта. Пробел раскрыть и дальше · ← → слайды