MJPEG


MJPEG (Motion JPEG) — покадровый метод видеосжатия, основной особенностью которого является сжатие каждого отдельного кадра видеопотока с помощью алгоритма сжатия изображений JPEG.

Motion JPEG использует внутрикадровое сжатие с потерями на основе дискретного косинусного преобразования (ДКП). Эта математическая операция преобразует каждый кадр/поле изображения из пространственной области в частотную. Психовизуальная модель, основанная на особенностях восприятия изображений человеком, использует обычно грубое квантование высокочастотной составляющей изображения и более аккуратное квантование низкочастотной составляющей, снижая тем самым точность передачи резких переходов яркости и оттенков цвета. Квантованные коэффициенты ДКП без потерь упаковываются в выходной битовый поток с использованием кодов Хаффмана либо с помощью арифметического кодирования. Почти все программные реализации MJPEG позволяют пользователям контролировать степень сжатия (а также другие параметры) и достигать компромисса качества изображения и размера файла. При аппаратных решениях параметры кодирования, как правило, предварительно выбраны и зафиксированы.

Заголовок каждого кодированного MJPEG обычно соответствует стандарту JPEG, однако, допустимыми являются некоторые несоответствия стандарту. Так, например, в нём может отсутствовать маркер DHT, определяющий таблицы для хаффмановского декодирования. В этом случае в процессе декодирования следует использовать таблицы, приведённые в разделе K.3 стандарта JPEG (CCITT Rec. T.81).