Мой блог
Как математика Насира Ахмеда легла в основу почти каждого JPEG на Земле
В начале 1972 года ученый Насир Ахмед подал в Национальный научный фонд заявку на исследование косинусного преобразования, но получил отказ из-за того, что рецензент счел идею «слишком простой». Сегодня эта базовая математика применяется практически во всех файлах JPEG на наших устройствах, обеспечивая привычное сжатие снимков.
Я, Сергей Багров, подготовил подробный разбор этой исторической вехи и технических принципов. В этом материале мы проследим путь от университетских экспериментов до современных алгоритмов экспорта, которые использует каждый фотограф.
Лето, которое подавило сомнения и создало преобразование
Насир Ахмед преподавал в Канзасском государственном университете в период бурного развития методов кодирования изображений. Тогда исследователи активно внедряли ортогональные преобразования, оценивая их качество по стандартным тестовым картинкам. Золотым стандартом того времени считалось преобразование Карунена — Лоэва, обеспечивавшее минимальную среднеквадратичную ошибку, однако оно зависело от конкретной статистики данных и не имело быстрого фиксированного алгоритма вычисления.
В поисках универсальной замены Ахмед обратился к математическим трудам по интерполяцонным полиномам Чебышева. Функции из этого семейства демонстрировали поразительное сходство с базисными функциями Карунена — Лоэва на тех диапазонах корреляции пикселей, которые характерны для реальных фотографий.

Эту идею научный фонд в итоге отклонил, посчитав банальной. Тем не менее, Ахмед продолжил работу вместе со своим аспирантом Т. Натараджаном и коллегой К. Р. Рао. Летом 1973 года они провели ключевые расчеты, результаты которых казались им невероятно успешными.

Оценив результаты по критерию искажений, разработчики убедились в их эффективности и передали материалы Гарри Эндрюсу из Южно-Калифорнийского университета. Его тестовая программа подтвердила лидерство разработки, после чего авторы опубликовали короткую заметку в январском выпуске журнала IEEE Transactions on Computers за 1974 год.

Что происходит с блоком 8 на 8 пикселей при сжатии
Современные цветные JPEG-файлы кодируются по отработанной схеме: изображение переводится в канал яркости и два цветовых канала, после чего каждый из них разбивается на сетку размером 8 на 8 пикселей. Перед началом математических операций кодер вычитает из каждого 8-битного значения 128, центрируя диапазон от -128 до 127.

Затем применяется двумерное дискретное косинусное преобразование. На входе программа получает 64 числа, а на выходе формирует 64 коэффициента, каждый из которых отражает вес определенного фиксированного паттерна.

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

Верхний левый элемент матрицы называют DC-коэффициентом, который пропорционален среднему значению уровня тайла. Остальные элементы выступают в роли AC-коэффициентов, описывающих наличие мелких деталей и текстур в различных направлениях.
Поскольку реальные фотографии вроде неба, кожи или размытого фона содержат преимущественно плавные переходы, вся энергия сосредоточена в левом верхнем углу, а мелкие паттерны стремятся к нулю. Преобразование обратимо в пределах погрешности округления.
Выбор фиксированного блока 8х8 был закреплен комитетом JPEG в Копенгагене в 1988 году. Этот размер оказался оптимальным балансом между дешевизной вычислений на оборудовании тех лет и эффективностью сжатия.
Ползунок качества как таблица делителей
Потеря данных происходит на следующем этапе, когда 64 коэффициента делятся на значения из специальной таблицы квантования, после чего результаты округляются до целых чисел. Человеческий глаз менее восприимчив к дефектам в мелких текстурах, чем к перепадам яркости, и эта особенность заложена в структуру матриц.
Каждый программный инструмент масштабирует базовую таблицу с помощью собственного алгоритма. Например, в библиотеке libjpeg при значении качества 50 таблица используется в исходном виде, при более высоких значениях делители уменьшаются, а при низких — возрастают в разы.
Коэффициенты, превратившиеся после деления в нули, собираются кодером с помощью зигзагообразного обхода в хвост массива, где алгоритмы сжатия легко удаляют их. В результате файл уменьшается в размерах ценой исчезновения мелких высокочастотных деталей.
Если выставить чрезмерно сильное сжатие, на границах блоков начинают проявляться квадратные артефакты, а тонкие цветные линии и мелкий текст размываются сильнее из-за особенностей работы с цветовыми каналами.
У дискретного косинусного преобразования есть конкретный автор
Долгое время дискретное косинусное преобразование воспринималось инженерами как нечто естественное и бесхозное, подобно законам природы. Однако у этой математики есть вполне конкретный авторский состав, история отказов, совместных обсуждений и публикаций.
После публикации в 1974 году признание приходило постепенно. Насир Ахмед продолжил академическую карьеру в Университете Нью-Мексико, где стал профессором и возглавил кафедру. Широкая общественность узнала его имя только в 2021 году после упоминания в телесериале, а в 2026 году он был избран членом Национальной инженерной академии США и удостоен премии IEEE за вклад в цифровую революцию.
Практические рекомендации по экспорту и сохранению файлов
Максимальное значение качества 100 в настройках экспорта не означает абсолютную безпотерьность. На этом уровне масштабирующий коэффициент равен единице, но само округление в ходе математического преобразования продолжается, а выбор субдискретизации цвета может дополнительно ухудшить насыщенность палитры.
Численные показатели качества не стандартизированы между разными приложениями. Шкалы в Photoshop, камерах и сторонних программах используют собственные таблицы, поэтому оценивать итоговый результат всегда стоит визуально при стопроцентном увеличении.
Каждое повторное сохранение готового файла JPEG приводит к пересчету уже квантованных коэффициентов и накоплению артефактов. Лучшей практикой остается работа с исходными RAW-файлами или несжатыми мастерами с последующим однократным экспортом финальной версии.
Уменьшение разрешения избыточного снимка перед экспортом в веб-формат часто дает более чистый и компактный файл, чем прямое сохранение гигантского кадра с высоким сжатием. Современные форматы вроде HEIC и JPEG XL сохранили развитие этой же концепции блоков, продолжая дело, заложенное инженерами более полувека назад.
