Нобелевская премия 1981 и сжатие фотографий
1959 год. Дэвид Хьюбел и Торстен Визел вживляют тонкий электрод в зрительную кору кошки — область мозга, обрабатывающую сигналы от глаз. Они хотят понять, как именно нейрон «видит».
Часами они показывают кошке разные стимулы. Нейрон молчит. Случайно двигают слайд в проекторе — нейрон резко отвечает. Не на яркость, не на цвет — на движущуюся границу определённой ориентации.
Открытие: нейроны зрительной коры — это детекторы признаков: краёв, ориентаций, контрастов. Каждый нейрон отвечает только на свой «узор». Зрение строит мир из признаков, а не копирует пиксели сетчатки.
Нобелевская премия по медицине и физиологии 1981 года.
В 1992 году эти знания легли в основу алгоритма JPEG.
Как работает JPEG: пять шагов
Шаг 1: Перевод RGB → YCbCr
Вместо трёх цветовых каналов (красный, зелёный, синий) — три другие компоненты:
- Y — яркость (luminance)
- Cb — синяя цветовая составляющая
- Cr — красная цветовая составляющая
Почему это важно: зрительная система человека гораздо чувствительнее к яркостным деталям, чем к цветовым. Это открыл не JPEG — это открыла эволюция: в сетчатке ~120 млн палочек (яркость) и только ~6 млн колбочек (цвет).
Шаг 2: Субдискретизация цвета
Каналы Cb и Cr сжимаются в 2–4 раза (каждый блок 2×2 пикселя → один цветовой пиксель). Яркостный канал Y — без потерь.
Ты почти никогда этого не замечаешь. Хьюбел объяснил почему: нейроны цветового зрения имеют более крупные рецептивные поля — они менее «мелкозернисты».
Шаг 3: Разбивка на блоки 8×8 и ДКП
Изображение режется на блоки 8×8 пикселей. Каждый блок подвергается дискретному косинусному преобразованию (DCT):
F(u,v) = (2/N) · C(u)·C(v) · Σ Σ f(x,y) · cos(πu(2x+1)/2N) · cos(πv(2y+1)/2N)
Это — преобразование Фурье в другом виде. Блок 8×8 = 64 числа (яркости пикселей) → 64 коэффициента (от «очень низкочастотные» до «очень высокочастотные»).
Физический смысл: DCT разбирает изображение на пространственные частоты — как Фурье разбирает звук на тоны. Первый коэффициент — средняя яркость блока. Последние — мелкие детали.
Шаг 4: Квантование — здесь и теряется информация
Каждый коэффициент DCT делится на число из «таблицы квантования» и округляется:
Qij = round(Fij / qij)
- Низкочастотные коэффициенты (крупные структуры) — делятся на малые числа → сохраняются точно
- Высокочастотные коэффициенты (мелкие детали) — делятся на большие числа → многие обнуляются
Именно здесь работает нейронаука Хьюбела: зрительная кора хуже воспринимает высокие пространственные частоты → их можно выбросить без видимых потерь.
Шаг 5: Энтропийное кодирование
Матрица с обнулёнными коэффициентами кодируется без потерь (Хаффман или арифметическое кодирование). Длинные цепочки нулей → «17 нулей подряд» → 2 байта вместо 17.
Что глаз не замечает: опыты с изображениями
Опыт 1: Артефакты JPEG при высоком сжатии
- Открой любую фотографию в графическом редакторе (GIMP, Photoshop).
- Сохрани как JPEG с качеством 100%, 50%, 10%, 1%.
- Сравни: при 10% начинают появляться «квадратики» 8×8 — это и есть блоки DCT.
- Обрати внимание: квадратики заметнее на резких границах (края предметов) и почти незаметны на однородных областях. Почему?
Опыт 2: Яркость vs цвет
- Переведи любое цветное фото в оттенки серого (только яркостный канал).
- Уменьши файл JPEG до 10 кБ.
- Сравни с цветным файлом того же размера.
- Серое изображение резче — без цветовых каналов больше «места» для яркостных деталей.
Опыт 3: Невидимые частоты
На сайте с интерактивным DCT (parametric.press/issue-01/unraveling-the-jpeg/) можно двигать ползунки и видеть, какие частоты выброшены. Поставь все высокочастотные компоненты в ноль и посмотри: изображение почти не изменилось!
Связь с восприятием: что знал Хьюбел
Хьюбел и Визел описали простые и сложные клетки зрительной коры:
- Простые клетки: реагируют на линию определённой ориентации в определённом месте поля зрения
- Сложные клетки: реагируют на линию определённой ориентации в любом месте определённой области
Это иерархическая система обработки — от пикселей сетчатки к признакам к объектам. JPEG работает на первом уровне этой иерархии: убирает то, что не попадает в рецептивные поля простых клеток.
Более современные стандарты (HEIC, WebP, AVIF) используют более сложные модели восприятия. Нейросетевые компрессоры 2020-х пытаются учесть уже второй и третий уровень иерархии Хьюбела.
👉 Связь: Цветовые оппонентные каналы
Вопросы для исследования
- Почему JPEG плохо работает с текстом и схемами (для них лучше PNG)? (Подсказка: DCT-блоки и резкие границы)
- Медицинские снимки (рентген, МРТ) нельзя сохранять в JPEG. Почему? Какой формат используют?
- Найди, как работает алгоритм сжатия MP3. Он использует ту же идею — психоакустическую модель. Что именно в звуке MP3 выбрасывает?