MJPEG (Motion-JPEG) – это формат сжатия видео, в котором каждый кадр представляет собой отдельное JPEG-изображение. В мультимедийных приложениях MJPEG подразумевает потоковую передачу видео, состоящую из последовательности сжатых изображений в формате JPEG.
MJPEG применяется в различных областях:
1. Видеонаблюдение: MJPEG используется для записи и потоковой передачи видео со множеством кадров в секунду. Это обеспечивает высокое качество изображения и легкий доступ к отдельным кадрам. Обычно такая аппаратура совместима со стандартом ONVIF.
2. Веб-камеры и видеокамеры: многие веб-камеры и видеокамеры записывают видео в формате MJPEG. Это позволяет производить запись на отдельные файлы или потоковую передачу видео через сеть.
3. Медиа-серверы и стримеры: MJPEG широко используется для потоковой передачи видео с серверов и мультимедиа-устройств на другие устройства, такие как телевизоры или мониторы.
4. Видеоархивация: MJPEG часто используется для архивации видео. Отдельные кадры видео можно сохранить в виде отдельных файлов JPEG с высоким качеством.
5. Видеоредактирование: MJPEG можно использовать для редактирования видео с помощью программного обеспечения для редактирования видео, так как каждый кадр представляет собой отдельное изображение и может быть легко доступным для редактирования.
В целом, MJPEG применяется во многих областях, где требуется высокая производительность и качество видео.
Дело в том, что в MJPEG применяется схема только внутрикадрового сжатия (по сравнению с более сложными схемами вычисления с межкадровым сжатием). В то время, как современные видеоформаты с межкадровым сжатием, такие как MPEG1, MPEG2, H.264/MPEG-4 AVC и им подобные, достигают в среднем степени сжатия 1:50 и более, отсутствие в MJPEG межкадрового сжатия, как правило, не позволяет получать коэффициенты сжатия, превосходящие 1:20, в зависимости от допустимости пространственных искажений в декодированных кадрах видеопоследовательности. Так как кадры сжимаются независимо друг от друга, MJPEG требует меньше вычислительных ресурсов и оперативной памяти на этапе кодирования. Однако, декодирование MJPEG может оказаться более затратным, чем при использовании межкадрового сжатия, поскольку, во-первых, предполагает полное декодирование в MJPEG каждого макроблока изображения, тогда как при использовании схем с межкадровым сжатием часть макроблоков, помеченных как «skip», не декодируется, а берётся из предыдущих кадров. Во-вторых, время выполнения процедур хаффменовского декодирования и обратного ДКП зависит от информационной насыщенности декодируемого макроблока изображения, которая при отсутствии межкадрового сжатия оказывается значительно большей, чем при его наличии (в первом случае декодируется полное изображение, во втором — разностное, то есть не само изображение, а лишь его отличие от предсказанного по предыдущим кадрам).
Основным преимуществом видеосжатия Motion JPEG является простота реализации, что делает MJPEG подходящим для реализации в устройствах с ограниченными вычислительными ресурсами.
Чрезвычайно быстрый видеомонтаж — если какой-либо кадр берётся целиком (без изменений) из одного MJPEG-источника, его можно записать в выходной MJPEG-поток как есть, без декодирования-сжатия.
MJPEG даёт стоп-кадры стабильного качества, что ценно в видеонаблюдении, чтобы, например, выяснить номер проехавшего автомобиля или подробно рассмотреть лицо человека. Битрейт можно настроить даже на неподвижных объектах — и качество будет сохраняться независимо от скорости движения. В кодеках с межкадровым сжатием качество стоп-кадра сильно зависит от того, насколько он далёк от опорного (закодированного полностью) и много ли движения.
Недостатками MJPEG являются более низкий коэффициент сжатия по сравнению с потоковыми методами сжатия (например, MPEG-4) и проявляющиеся при высоких степенях сжатия артефакты.