Тригонометрия

Дискретное косинусное преобразование: JPEG и MP3

Цели урока

  • Вычислять DCT-II и объяснять её связь с DFT
  • Понимать механизм энергетической концентрации и связь с KLT
  • Описывать пайплайн JPEG: DCT → квантование → зигзаг → Хаффман
  • Объяснять роль MDCT в MP3 и принцип overlap-add

Предварительные знания

  • Ряды Фурье
  • DFT и FFT
  • Вейвлет-анализ
  • Ряды Фурье
  • Вейвлеты и MRA

Почему JPEG сжимает 12 МБ в 1 МБ без видимых потерь - и что именно выбрасывается?

  • JPEG: 12:1 сжатие фотографий, стандарт с 1992 года
  • MP3/AAC: 10:1 сжатие аудио через MDCT и психоакустику
  • HEVC/H.265: 4K видеостриминг Netflix на 15-20 Мбит/с
  • WebP: следующее поколение после JPEG с меньшими артефактами

История: от теоремы KLT до стандарта ISO

Преобразование Карунена-Лоэве (1946/1960) - оптимальная декорреляция данных, но вычислительно дорого. Ахмед, Натараджан и Рао в 1974 году показали, что DCT асимптотически совпадает с KLT для марковских данных - и это вычислимо за O(N log N). Комитет JPEG принял DCT-II как основу стандарта в 1992 году. MP3 стандартизирован в 1993-м через MPEG-1 Audio Layer III с MDCT. Сегодня DCT лежит в основе JPEG, MP3, AAC, H.264, H.265 - практически всего мультимедийного контента в интернете.

DCT-II и энергетическая концентрация

Стандарт JPEG сжимает фотографию iPhone в 12 раз: 12 МБ становятся 1 МБ. Секрет - дискретное косинусное преобразование концентрирует 99% энергии изображения в 10% коэффициентов, остальные квантуются в ноль. Netflix при стриминге 4K применяет HEVC, где блочное DCT-кодирование аналогично JPEG, только блоки до 64x64.

DCT-II можно вычислить через FFT: добавить нули, сделать FFT и взять вещественную часть. Это даёт O(N log N) вместо O(N²) прямого вычисления.

Почему DCT-II эффективнее DFT для сжатия изображений?

Натуральные изображения статистически аппроксимируются марковским процессом первого порядка. DCT асимптотически совпадает с оптимальным преобразованием Карунена-Лоэве (KLT), декоррелируя данные максимально эффективно.

JPEG: квантование и кодирование

JPEG работает так: разбить изображение на блоки 8x8, применить DCT к каждому, разделить коэффициенты на матрицу квантования Q (большие значения для высоких частот), округлить до целых. Высокочастотные коэффициенты, незаметные глазу, обнуляются. Зигзаг-сканирование преобразует матрицу в вектор - длинные серии нулей в конце сжимаются RLE + Хаффман.

Блочные артефакты JPEG (видимые квадраты при высоком сжатии) - следствие независимого квантования блоков 8x8. JPEG 2000 и WebP используют DWT и лишены этого дефекта.

Почему JPEG использует блоки 8x8 пикселей, а не весь кадр целиком?

Маленький блок - быстрое кодирование, сохраняет локальную пространственную корреляцию, но вызывает блочные артефакты при высокой компрессии. Большой блок - лучше использует глобальную статистику, но медленнее и теряет актуальность на краях объектов.

MDCT в MP3 и AAC

MP3 сжимает аудио в 10 раз без заметных потерь. Ключевой инструмент - MDCT с 50% перекрытием окон. Это устраняет блочные артефакты между фреймами, которые были бы слышны как щелчки. Spotify стримит около 320 кбит/с AAC, что требует обработки 44100 семплов/с через перекрывающиеся окна MDCT в реальном времени.

Битрейт и качество в MP3

Зависимость воспринимаемого качества от битрейта

128 кбит/с: слышны артефакты при внимательном прослушивании. 192 кбит/с: большинство не отличит от CD. 320 кбит/с: практически неотличимо. FLAC (без потерь): 700-1100 кбит/с. AAC при 256 кбит/с воспринимается лучше MP3 при 320 кбит/с.

Зачем MDCT в MP3 использует 50% перекрытие окон?

Независимое кодирование непересекающихся блоков создаёт заметные на слух стыки. MDCT берёт 2N семплов для N коэффициентов - каждый семпл участвует в двух фреймах. Overlap-add суммирует перекрытия и устраняет стыки.

Связи с другими темами

DCT связывает тригонометрический анализ с инженерными стандартами сжатия

  • JPEG и HEVC — Связанная тема
  • MP3 и AAC — Связанная тема
  • KLT и статистика — Связанная тема
  • Банки фильтров — Связанная тема

Итоги

  • DCT-II концентрирует энергию в немногих коэффициентах, асимптотически оптимальна (KLT) для марковских данных
  • JPEG: DCT блока 8x8 → квантование матрицей Q → зигзаг → RLE + Хаффман; качество управляется масштабом Q
  • MDCT с 50% перекрытием устраняет блочные артефакты в MP3/AAC через overlap-add реконструкцию
  • Весь мультимедийный поток интернета - JPEG, MP3, H.264, H.265 - основан на одной идее: DCT и квантование высоких частот

Вопросы для размышления

  • Почему квантование высокочастотных коэффициентов даёт меньше заметных артефактов, чем низкочастотных?
  • Как психоакустическая маскировка позволяет использовать неравномерное квантование в MP3?
  • В чём принципиальное улучшение JPEG 2000 над JPEG и почему JPEG всё ещё доминирует?

Связанные уроки

  • trig-21 — Ряды Фурье - теоретическая основа DCT
  • trig-24-wavelets — DCT и DWT - два подхода к сжатию; JPEG 2000 использует DWT
  • trig-26-trig-poly — Базисные косинусы DCT - тригонометрические полиномы
Дискретное косинусное преобразование: JPEG и MP3

0

1

Войти