Термин

DCT

Англ.: Discrete Cosine Transform
Короткое определение

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

DCT – Discrete Cosine Transform – математический шаг в сердце почти каждого изображенческого и видео-кодека. JPEG использует его, MPEG-2 использовал, H.264 применяет близкий вариант, HEVC и AV1 – улучшенные версии. Интуитивно: DCT берёт небольшой блок пикселей (скажем, 8×8) и переописывает его не как 64 отдельных значения, а как сумму стандартных «волнистых» паттернов разного масштаба.

Зачем это полезно: для большинства натуральных изображений основную информацию несут лишь несколько первых паттернов (широкие, плавные), а высокочастотные паттерны (мелкие текстуры, резкие края) вкладываются гораздо меньше. После DCT получается несколько важных чисел и много крошечных, близких к нулю – идеально для сжатия. Маленькие можно агрессивно отбросить или квантовать (глаз не заметит) и оставить только большие – это уже до энтропийного кодирования режет объём данных в 5–10 раз.

Последний пункт – глаз не заметит – и есть причина, по которой DCT-кодеки «ощущаются правильными». Человеческое зрение гораздо чувствительнее к низкочастотной информации (общая форма лица), чем к высокочастотной (отдельные поры). DCT чётко разделяет одно и другое, позволяя энкодеру тратить биты на то, что зритель видит, и экономить на том, чего не видит. AV1, HEVC и VVC добавляют дополнительные преобразования (ADST, integer transforms и т. п.) для блоков, где чистый DCT неоптимален, но базовый принцип не менялся с JPEG 1992 года.

Считаете параметры для своего продукта?

Поможем собрать энкодер-леддер и посчитать стоимость доставки – до старта разработки.