MJPEG против времени кодирования MPEG-4 - PullRequest
0 голосов
/ 11 августа 2011

Я тестирую производительность кодирования (MPEG-4 и MJPEG) умной камеры. Я написал приложение в OpenCV / FFMPEG для выполнения кодирования, где приложение захватывает изображения с камеры и кодирует их в желаемый формат кодирования. В тестах я узнал, что кодирование MJPEG занимает намного больше времени, чем кодирование MPEG-4. Я ожидал, что это будет наоборот. Кодирование одного кадра в MPEG-4 занимает около 31 мс, а кодирование в MJPEG - около 80 мс. Действительно ли MJPEG занимает столько времени по сравнению с MPEG-4?

1 Ответ

1 голос
/ 14 августа 2011

MJPeg теоретически быстрее, в основном потому, что межкадровое сжатие отсутствует.

Однако существуют способы ускорения MPEG-4.Вот несколько факторов, которые следует учитывать:

  • MPEG-4 на самом деле может быть двух разных форматов: либо «Часть 2», либо «Часть 10», а Часть 2 намного быстрее.Подробности см. Здесь: http://en.wikipedia.org/wiki/MPEG-4_Part_2.

  • Настройки для энкодера могут составлять порядка
    разницы.Быстрые настройки для данного формата могут быть в 10 или более раз
    быстрее, чем тот же формат с более медленными настройками (скорость / качество
    компромиссы).

  • Кодеры для MPEG-4некоторые из самых оптимизированных частей кода на планете.Они все еще интенсивно используют язык ассемблера.Они могут легко быть быстрее на практике, чем другой формат, который не сильно оптимизирован.

  • Если ваш IO медленный (сеть, жесткий диск), это может исказить результаты.
    Например, отсутствие сжатия - самый быстрый способ?Но для записи больших файлов требуется время.

Таким образом, на практике MJPEG может работать медленнее по этим причинам и в других случаях.

...