Введение
Формат сжатия видео Motion JPEG (M JPEG или MJPEG) — это формат сжатия видео, в котором каждый видеокадр или полукадр цифровой видеопоследовательности сжимается отдельно как изображение JPEG. Изначально разработанный для мультимедийных приложений для ПК, Motion JPEG обладает широкой поддержкой: большинство основных веб-браузеров и медиаплееров обеспечивают встроенную поддержку, а для остальных доступны плагины. Программное обеспечение и устройства, использующие стандарт M JPEG, включают веб-браузеры, медиаплееры, игровые консоли, цифровые камеры, IP-камеры, веб-камеры, потоковые серверы, видеокамеры и нелинейные видеоредакторы.
Motion JPEG (M JPEG or MJPEG) is a video compression format in which each video frame or interlaced field of a digital video sequence is compressed separately as a JPEG image. Originally developed for multimedia PC applications, Motion JPEG enjoys broad client support: most major web browsers and players provide native support, and plug ins are available for the rest. Software and devices using the M JPEG standard include web browsers, media players, game consoles, digital cameras, IP cameras, webcams, streaming servers, video cameras, and non linear video editors.
История
Motion JPEG изначально разрабатывался для мультимедийных приложений на персональных компьютерах. Ранние реализации MJPEG обычно выполнялись на аппаратном уровне. Компания C Cube была одним из первых сторонников, и их кодек CL550 JPEG использовался в нескольких аппаратных реализациях. Было объявлено, что NeXTdimension от NeXT будет оснащен встроенным CL550 для реализации MJPEG. Однако впоследствии от этой идеи отказались, и она не была включена в финальную версию продукта, поступившего в продажу. В середине 1990-х годов компания Apple предоставила программную реализацию MJPEG в своем проигрывателе QuickTime.
Дизайн
M JPEG – это схема сжатия, использующая только внутрикадровое сжатие (в отличие от более ресурсоемкого метода меж кадрового прогнозирования). В то время как современные форматы видео с меж кадровым сжатием, такие как MPEG1, MPEG2 и H.264/MPEG 4 AVC, достигают реальных коэффициентов сжатия 1:50 и выше, отсутствие меж кадрового прогнозирования в M JPEG ограничивает его эффективность до 1:20 и ниже, в зависимости от допустимого уровня пространственных артефактов в сжатом видео. Поскольку кадры сжимаются независимо друг от друга, M JPEG предъявляет более низкие требования к вычислительной мощности и объему памяти на аппаратных устройствах. Как схема, основанная исключительно на внутрикадровом сжатии, качество изображения M JPEG напрямую зависит от статической (пространственной) сложности каждого видеокадра. Кадры с большими плавными переходами или однородными поверхностями хорошо сжимаются и с большей вероятностью сохраняют исходные детали с минимальным количеством видимых артефактов сжатия. Кадры со сложными текстурами, тонкими кривыми и линиями (например, текст в газете) склонны демонстрировать артефакты дискретного косинусного преобразования (DCT), такие как ореолы, размытие и макроблочность. Сжатое видео M JPEG также нечувствительно к сложности движения, то есть к изменениям во времени. Ему не мешает ни хаотичное движение (например, турбулентность поверхности воды в большом водопаде), ни отсутствие движения (например, статический пейзаж, снятый со штатива) – это две крайности, обычно используемые для тестирования форматов видео с меж кадровым сжатием. Для форматов QuickTime компания Apple определила два типа кодирования: MJPEG A и MJPEG B. MJPEG B больше не содержит корректных JPEG-файлов, поэтому невозможно извлечь кадр в JPEG-файл без незначительного изменения заголовков. JPEG неэффективен, требуя больше битов для достижения сопоставимого качества по сравнению с более современными форматами (такими как JPEG 2000 и H.264/MPEG 4 AVC). С момента разработки оригинального стандарта JPEG в начале 1990-х годов были усовершенствованы технологии не только формата JPEG, но и схемы меж кадрового сжатия.
Особенности
Motion JPEG прост в реализации, поскольку использует зрелый стандарт сжатия (JPEG) с хорошо разработанными библиотеками и является внутрикадровым методом сжатия. Он хорошо справляется с быстро меняющимся движением в видеопотоке, в то время как схемы сжатия с межкадровым сжатием часто могут демонстрировать неприемлемую потерю качества при значительных изменениях видеоконтента между кадрами. Требуется минимальное аппаратное обеспечение, так как он не требует больших вычислительных ресурсов.
Стандартизация
В отличие от видеоформатов, определенных в международных стандартах, таких как MPEG 2, и формата, указанного в стандарте кодирования неподвижных изображений JPEG, не существует документа, определяющего единый точный формат, который был бы повсеместно признан полной спецификацией Motion JPEG для использования во всех случаях. Это вызывает опасения по поводу совместимости файлов, создаваемых разными производителями. Однако, каждый конкретный формат файла обычно имеет свой стандарт кодирования M JPEG. Например, Microsoft документирует свой стандартный формат хранения M JPEG в файлах AVI, Apple документирует способ хранения M JPEG в файлах QuickTime, RFC 2435 описывает реализацию M JPEG в потоке RTP, а для формата файла Matroska планируется M JPEG CodecID.
Приложения
M JPEG сейчас используется устройствами захвата видео, такими как цифровые камеры, IP-камеры и веб-камеры, а также нелинейными системами видеомонтажа. Он поддерживается нативно в QuickTime Player, консоли PlayStation и веб-браузерах, включая Safari, Google Chrome, Mozilla Firefox и Microsoft Edge.
Редактирование видео
M JPEG часто используется в нелинейных системах видеомонтажа. Современные настольные процессоры достаточно мощны для работы с видео высокой четкости, поэтому специальное оборудование не требуется, и они обеспечивают прямой произвольный доступ к любому кадру.
Игровые приставки
Игровая консоль PlayStation имела встроенное аппаратное обеспечение для декомпрессии M JPEG, используемое в игровых FMV-последовательностях, а портативная игровая консоль PlayStation Portable может воспроизводить M JPEG с карты памяти Memory Stick Pro Duo под расширением .avi с разрешением 480x272. Обе консоли могут записывать видеоклипы в формате M JPEG с помощью камеры Go!Cam. Игровая консоль Nintendo Wii, а также планшет InnoTab от VTech, могут воспроизводить видео, закодированное в M JPEG, с SD-карты через свой Photo Channel. Цифровые аудиоплееры SanDisk Sansa e200 и Zen V воспроизводят короткие видеоролики в формате M JPEG. Последние обновления прошивки Nintendo 3DS позволяют записывать и воспроизводить файлы "3D AVI", закодированные в M JPEG – тот же формат, что используется в серии Fujifilm FinePix Real 3D – с SD-карты в разрешении 320x240, при условии, что продолжительность видео не превышает 10 минут.
Цифровые камеры
До недавнего роста популярности кодирования MPEG 4 в потребительских устройствах, прогрессивная развертка M JPEG широко использовалась в режимах "видео" цифровых фотоаппаратов, позволяя осуществлять кодирование и воспроизведение видео через встроенное аппаратное обеспечение сжатия JPEG с помощью всего лишь программной модификации. Получаемое качество по-прежнему уступает аналогичному по размеру MPEG, особенно учитывая, что звук (при наличии) был несжатым PCM и записывался с низкой частотой дискретизации или с использованием ADPCM с низкой степенью сжатия и низкими требованиями к процессору. Для контроля над размерами файлов и скоростью передачи, размеры и частота кадров, а также частота дискретизации звука, поддерживаются относительно низкими с очень высокой степенью сжатия для каждого отдельного кадра. Распространенными разрешениями являются 160×120 или 320×240, обычно с частотой 10, 12 или 15 кадров в секунду, при качестве изображения, эквивалентном настройке JPEG "50" с монофоническим звуком ADPCM, дискретизированным при частоте ~8 кГц. Это обеспечивает простое, но работоспособное видео с аналогичными затратами на хранение, как у MPEG (~120 кБ/с скорость видео, ~8 кБ/с аудио – или приблизительно 1 Мбит/с при разрешении 320×240), но с минимальной нагрузкой на процессор. Видео обычно хранится в файлах-контейнерах AVI от Microsoft или QuickTime Movie от Apple. В этих файлах MPEG может просматриваться непосредственно на большинстве операционных систем, однако иногда требуется установка дополнительного кодека. Видеоформат AMV, распространенный на недорогих MP4-плеерах, является модифицированной версией M JPEG. Помимо портативных плееров (которые в основном являются "потребителями" видео), многие цифровые камеры с поддержкой видео используют M JPEG для захвата видео. Например:
В августе 2008 года компания Nikon представила D90, первую зеркальную камеру, способную записывать видео. Используемый формат – M JPEG. D90 использует три различных формата Motion JPEG: 320×216 пикселей, 640×424 пикселей и 1280×720 пикселей. В июне 2009 года компания Pentax объявила, что предстоящая камера K 7 будет использовать M JPEG в разрешениях 640×416, 1280×720 и 1536×1024. Скорость передачи данных для создаваемых файлов M JPEG может достигать 74 Мбит/с. В августе 2016 года компания Canon объявила, что камера 5D Mark IV будет записывать видео 4K в формате M JPEG со скоростью передачи данных приблизительно 500 Мбит/с. Многие сетевые камеры предоставляют потоки M JPEG, к которым могут подключаться сетевые клиенты. Браузеры Mozilla и Webkit имеют встроенную поддержку для просмотра этих потоков M JPEG. Некоторые сетевые камеры предоставляют собственные интерфейсы M JPEG как часть стандартного функционала. Для камер, которые не предоставляют эту функцию изначально, можно использовать сервер для транскодирования изображений камеры в поток M JPEG и последующей передачи этого потока другим сетевым клиентам.
In August 2008, Nikon announced the D90, the first D SLR to record video. The format used is M JPEG. The D90 uses three different motion JPEG formats: 320×216 pixels, 640×424 pixels and 1280×720 pixels. In June 2009, Pentax announced that the then upcoming K 7 camera would use M JPEG in resolutions 640×416, 1280×720, and 1536×1024. The data rate for the M JPEG files created can be up to 74 Mbit/s. In August 2016, Canon announced that the 5D Mark IV camera would record 4K video in M JPEG, with a data rate of approximately 500 Mbit/s. Many network enabled cameras provide M JPEG streams that network clients can connect to. Mozilla and Webkit based browsers have native support for viewing these M JPEG streams. Some network enabled cameras provide their own M JPEG interfaces as part of the normal feature set. For cameras that don't provide this feature natively, a server can be used to transcode the camera pictures into an M JPEG stream and then provide that stream to other network clients.
Медиаплееры
1 сентября 2010 года компания Apple объявила, что новейшая версия Apple TV будет поддерживать M-JPEG со скоростью до 35 Мбит/с, разрешением 1280x720 пикселей, частотой 30 кадров в секунду, аудио в формате μ-law и PCM стереозвук в файлах AVI. Некоторые медиаплееры, например Netgear NeoTV 550, не поддерживают воспроизведение M-JPEG.
Видеопоток
HTTP-потоковая передача разделяет каждое изображение на отдельные HTTP-ответы, определяемые маркером. HTTP-потоковая передача создает пакеты из последовательности JPEG-изображений, которые могут быть получены такими клиентами, как QuickTime или VLC. В ответ на GET-запрос к MJPEG-файлу или потоку, сервер передает последовательность JPEG-кадров по HTTP. Специальный MIME-тип content type multipart/x mixed replace;boundary=<boundary name> сообщает клиенту, что в ответе ожидается несколько частей (кадров), разделенных строкой <boundary name>. Имя этой границы явно указывается в объявлении MIME-типа. TCP-соединение не закрывается, пока клиент хочет получать новые кадры, а сервер – предоставлять их. Две основные реализации сервера потоковой передачи M-JPEG – cambozola и MJPG Streamer. Более надежный сервер ffmpeg также поддерживает потоковую передачу M-JPEG. Встроенная поддержка в веб-браузерах обеспечивается: Safari, Google Chrome, Microsoft Edge и Firefox. Другие браузеры, такие как Internet Explorer, могут отображать M-JPEG потоки с помощью внешних плагинов. Cambozola – это апплет, который может отображать M-JPEG потоки в браузерах с поддержкой Java. M-JPEG также поддерживается PlayStation и QuickTime. Чаще всего M-JPEG используется в IP-камерах видеонаблюдения.
Преемники
Технологические усовершенствования можно найти в конструкциях H.263v2 Annex I и MPEG-4 Part 2, использующих частотное предсказание значений коэффициентов преобразования, а также в H.264/MPEG-4 AVC, использующих пространственное предсказание и методы адаптивного размера блока преобразования. Кроме того, разработаны более сложные методы энтропийного кодирования, чем те, что были доступны при создании первой версии JPEG. Все эти нововведения делают M-JPEG неэффективным способом записи.