Теория информации

Сжатие данных: JPEG, H.265, LLM

Каждое JPEG-фото на вашем телефоне - это 50-летний алгоритм Насира Ахмеда (DCT, 1974). Каждый токен в ChatGPT - это алгоритм Gage (BPE, 1994). Теория информации незаметно пронизывает каждый байт данных.

  • **Netflix** адаптивно меняет настройки H.265 в зависимости от сложности сцены. «Тёмные» сцены «Игры престолов» были сжаты хуже - и зрители заметили блочные артефакты. Netflix потом переобработал весь контент.
  • **Apple HEIF** (iPhone 12+) хранит живые фото в H.265 контейнере с прозрачностью. Размер фото уменьшился в 2 раза без потери видимого качества.
  • **Llama 3** перешёл с 32K на 128K токенов в словаре и улучшил поддержку не-английских языков и кода - прямой эффект токенизации.

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

  • Rate-Distortion Theory

Transform Coding

Transform coding - универсальный принцип современного сжатия: преобразовать сигнал в домен, где энергия концентрируется в малом числе коэффициентов. DCT (дискретное косинусное преобразование) для изображений, MDCT для аудио, лифтинговые вейвлеты для JPEG2000. После трансформации большинство коэффициентов близки к нулю и хорошо квантуются.

**Karhunen-Loève Transform (KLT):** теоретически оптимальное преобразование - собственные векторы ковариационной матрицы. Декоррелирует компоненты полностью. DCT - практическое приближение KLT для стационарных сигналов. Для типичных изображений DCT почти оптимален.

ПреобразованиеПрименениеСвойство
DCTJPEG, H.264, H.265Концентрация энергии в DC + низких AC
MDCTMP3, AAC, VorbisПерекрывающиеся блоки, без артефактов
Wavelet (DWT)JPEG2000, EZWМногоуровневое разрешение
Learned transformNeural codecs (Balle)Оптимизирован под данные

Историческая справка

DCT предложил Насир Ахмед в 1974 году - изначально без практического применения. В 1992 году стал ядром стандарта JPEG. Именно DCT сделал цифровую фотографию практичной. Сегодня каждое JPEG-изображение использует этот 50-летний алгоритм.

JPEG всегда создаёт «квадратные блочные артефакты» из-за 8×8 блоков

Блочные артефакты появляются только при высоких Q (низком качестве). При высоком качестве JPEG блоки плавно стыкуются. H.265 использует переменные блоки до 64×64.

Артефакты - следствие агрессивного квантования высокочастотных DCT-коэффициентов. При консервативном квантовании блочность незаметна.

Почему в Q-таблице JPEG значения в правом нижнем углу (высокие частоты) больше, чем в левом верхнем?

Видеосжатие: H.265 и AV1

Видео - это последовательность изображений с высокой темпоральной корреляцией: соседние кадры отличаются незначительно. Видеокодеки используют это: inter-кодирование находит блок в предыдущем кадре (motion estimation) и кодирует только разницу (residual). H.265/HEVC и AV1 добавляют предсказание внутри кадра, иерархические блочные структуры и сложные энтропийные кодеры.

**Inter-кодирование:** текущий блок = predicted + residual. Predicted = блок из reference frame + motion vector. Residual = DCT(current − predicted). Если residual мал - почти нет потерь информации. Motion compensation может уменьшить энергию residual в 10-100 раз по сравнению с intra-кодированием.

КодекГодКлючевые улучшенияBD-Rate vs H.264
H.264/AVC2003CABAC, B-frames0% (базовый)
H.265/HEVC2013CTU до 64×64, 35 intra modes-50%
VP92012Google, открытый-45%
AV12018Open, superblock 128×128-65%
VVC/H.2662020BDOF, affine motion-50% vs HEVC

Историческая справка

H.265 (2013) был разработан консорциумом HEVC, но лицензионные споры замедлили его принятие. Google, Amazon, Netflix создали Alliance for Open Media и разработали AV1 (2018) - открытый кодек без лицензионных отчислений. YouTube, Netflix и Firefox перешли на AV1 к 2020-2022 годам.

H.265 вдвое эффективнее H.264 для всего контента

Выигрыш H.265 зависит от сложности сцены. Для статичного контента выигрыш больше, для динамичного - меньше. Среднее -50% - по специальным тестовым последовательностям.

Улучшения HEVC (большие блоки, больше intra-мод) лучше работают для однородного контента. Сложные сцены с мелкими деталями выигрывают меньше.

Почему видео с быстрым движением (экшн-фильм) сжимается хуже, чем статичная сцена?

Neural Compression

Нейросетевые кодеки (2017-2023) заменяют фиксированные трансформации (DCT) на обученные. Архитектура: энкодер → квантование → энтропийное кодирование → декодер. Это по сути VAE с явной оптимизацией R-D компромисса: L = rate + λ·distortion. Модели Balle et al. (Google), VCT, ELIC превзошли AV1 при низких битрейтах по PSNR и SSIM.

**Нейросетевой кодек:** min_{θ,φ} E[−log p_θ(ŷ)] + λ·d(x, decoder_φ(ŷ)), где ŷ = quantize(encoder(x)). Entropy model p_θ(ŷ) - гиперприорная сеть, оценивающая вероятности для ANS/арифм. кодера. При λ=0: только скорость (максимальное сжатие). При λ→∞: только качество.

СистемаАрхитектураvs AV1Год
Balle et al.CNN-VAE + hyperpriorсравнимо2018
ELICCNN-VAE + channel context-30% bits2022
VCTViT encoder + autoregressive-20% bits2022
MS-ILLMDiffusion decoderлучше по LPIPS2023
HEIC (Apple)Классический + ML toolsproduction2020

Историческая справка

Johannes Balle (Google Research) опубликовал первые практические нейросетевые кодеки изображений в 2016-2018. Apple использует нейросетевые компоненты в HEIF (High Efficiency Image Format) с iPhone 12. В 2023 году несколько нейросетевых кодеков впервые статистически значимо превзошли AV1 на стандартных тестах.

Нейросетевые кодеки заменят JPEG и H.265 в ближайшие 2-3 года

Нейросетевые кодеки превосходят классические только при определённых битрейтах и метриках. Практическое внедрение требует скорости кодирования, универсальности и обратной совместимости.

H.265/AV1 реализованы в hardware (ASIC). Нейросетевые кодеки требуют GPU/NPU. Переход займёт 10-15 лет, начиная со специализированных применений.

В нейросетевом кодеке параметр λ в L = rate + λ·distortion контролирует:

Токенизация LLM как сжатие

BPE-токенизатор (Byte Pair Encoding) - это компрессор без потерь: он находит часто встречающиеся подстроки и заменяет их одним токеном. По сути это LZ78/LZW применённый к тексту. Словарь токенов - это «словарь» в смысле LZW. Количество токенов на слово ≈ 1/степень_сжатия. GPT-4 использует ~100K токенов, сжимая английский текст примерно в 3-4 раза относительно UTF-8.

**BPE как компрессия:** Инициализируем словарь байтами. Итеративно: находим пару с максимальной частотой, добавляем её в словарь. Повторяем V раз (V = размер словаря). Результат: оптимизированный словарь для данного корпуса. Compression ratio ≈ 3-4x для английского. LLM работает в токенном пространстве - токенизация влияет на эффективность модели.

ТокенизаторМодельСловарьBytes/token
BPEGPT-2, GPT-450K-100K~4 (English)
WordPieceBERT, T530K~4 (English)
SentencePieceLLaMA, Gemma32K-256K~3-5
Byte-level BPEGPT-4, Claude100K~4-6

Историческая справка

BPE изначально предложен как алгоритм сжатия данных Gage (1994). В NLP его адаптировал Sennrich (2016) для нейронного машинного перевода. OpenAI использует tiktoken с BPE для всех GPT-моделей. Выбор токенизатора влияет на способность модели к математике и кодингу - исследование активно продолжается.

Токенизация - просто технический шаг перед «настоящим» обучением LLM

Токенизация фундаментально влияет на возможности модели: арифметику, кодинг, многоязычность и эффективность контекстного окна.

LLM работает в токенном пространстве. Если 'run' и 'running' - разные токены без закономерной связи, модели сложнее понять морфологию. Хорошая токенизация - часть моделирования.

Почему математика и код сложнее для LLM, чем английский текст, с точки зрения токенизации?

Ключевые идеи

  • **Transform coding:** DCT/MDCT концентрирует энергию → квантование незначимых коэффициентов → энтропийное кодирование. Основа JPEG, MP3, H.265.
  • **Видеосжатие:** inter-кодирование = motion estimation + residual coding. AV1 эффективнее H.264 на 65% при том же качестве.
  • **Нейросетевые кодеки:** VAE-архитектура + оптимизация R(D). ELIC (2022) превосходит AV1 при низких битрейтах.
  • **BPE-токенизация** - это LZW для текста. Качество токенизации влияет на математику, кодинг и многоязычность LLM.

Связанные темы

Сжатие данных объединяет все разделы теории информации в практику:

  • Rate-Distortion Theory — Теоретическая основа для всех lossy-форматов и нейросетевых кодеков
  • Кодирование без потерь: Хаффман, LZ — BPE - это вариант LZ77/LZW применённый к тексту
  • Information Theory в ML — Neural compression = VAE + явная R-D оптимизация

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

  • BPE токенизация - это без-потерь или с-потерями для текста? Как это влияет на возможности LLM?
  • Нейросетевые кодеки обучаются на конкретных данных (фотографии людей, природа). Что произойдёт при сжатии медицинских изображений?
  • AV1 - открытый кодек, свободный от патентов. Как это повлияло на его принятие в индустрии по сравнению с H.265?

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

  • alg-01-big-o
  • dsp-05
Сжатие данных: JPEG, H.265, LLM

0

1

Войти