Введение
Motion JPEG (M-JPEG или MJPEG) – формат сжатия видео, при котором каждый кадр видеопотока кодируется как независимое JPEG-изображение с внутрикадровым (intra-frame) сжатием. В отличие от межкадровых кодеков (H.264, H.265, MPEG-4), которые хранят только разницу между соседними кадрами, M-JPEG не использует временну́ю предикцию, что делает каждый кадр полноценной самостоятельной единицей.
M-JPEG широко применялся в системах видеонаблюдения, веб-камерах, цифровых фотоаппаратах (режим видео) и видеоредакторах до массового распространения H.264 в 2000-х годах. Сегодня остаётся актуальным в специфических сценариях, где важны простота монтажа, низкая задержка и потоковая передача по HTTP.
История и контекст
M-JPEG появился в начале 1990-х годов как простейший способ оцифровки видео – путём последовательного сохранения кадров в формате JPEG. Стандартного открытого спецификации M-JPEG для контейнеров долгое время не существовало, что привело к появлению многочисленных несовместимых реализаций от разных производителей. Только в 1996 году ISO стандартизировал M-JPEG в рамках JPEG 2000 Extension.
С выходом стандарта H.264 (2003) и особенно с его аппаратным ускорением в потребительских устройствах около 2008–2010 годов M-JPEG начал терять позиции. Тем не менее он остаётся де-факто стандартом для потоковой передачи видео в браузере через HTTP (Motion JPEG over HTTP используется во многих IP-камерах).
Как это работает
Принцип работы M-JPEG:
- Каждый кадр видео сжимается алгоритмом JPEG с заданным коэффициентом качества (Q, обычно 70–95%).
- Сжатые кадры последовательно записываются в файл или транслируются в потоке.
- Для воспроизведения каждый кадр декодируется JPEG-декодером независимо – без контекста соседних кадров.
Сравнение с H.264: для видео Full HD 1080p@30fps при сопоставимом качестве M-JPEG требует битрейт 20–50 Мбит/с, тогда как H.264 обеспечивает то же качество при 3–8 Мбит/с. Разница в хранении – примерно в 5–15 раз не в пользу M-JPEG.
Где применяется
- IP-видеонаблюдение: многие бюджетные IP-камеры используют M-JPEG как альтернативный поток для просмотра в браузере.
- Веб-трансляция: Motion JPEG over HTTP (multipart/x-mixed-replace) – простейший способ видеостриминга без специальных плагинов.
- Нелинейный монтаж: M-JPEG популярен в профессиональном видеомонтаже (Apple ProRes MOV аналогично хранит полные кадры), т.к. любой кадр можно вырезать без декодирования соседних.
- Промышленные камеры: в машинном зрении важен произвольный доступ к кадрам без latency декодирования.
- Цифровые фотоаппараты (видеорежим): ранние Canon и Nikon записывали видео в M-JPEG.
Преимущества и ограничения
Преимущества: произвольный доступ к любому кадру без декодирования предшествующих (удобно при монтаже); низкая задержка кодирования/декодирования; простота реализации; устойчивость к потерям при передаче (ошибка в одном кадре не влияет на другие).
Ограничения: высокий битрейт и объём хранения по сравнению с H.264/H.265; отсутствие единого открытого стандарта контейнера; не поддерживает звук нативно (аудио добавляется в контейнер AVI или MOV); не оптимален для видеоконференций из-за высокого потребления полосы пропускания.
Связь с другими понятиями
M-JPEG является частью семейства форматов сжатия видео наряду с H.264 (AVC), H.265 (HEVC), VP9 и AV1. В контексте видеонаблюдения M-JPEG дополняется стандартом ONVIF, определяющим совместимость IP-камер. В веб-разработке M-JPEG over HTTP конкурирует с HLS, DASH и WebRTC для потоковой передачи видео. Принцип независимого кодирования кадров применяется также в кодеках ProRes (Apple) и DNxHD (Avid).