【问题标题】:MJPEG vs. MPEG-4 encoding timeMJPEG 与 MPEG-4 编码时间
【发布时间】:2011-08-11 10:10:59
【问题描述】:
我正在测试智能相机的编码性能(MPEG-4 和 MJPEG)。我在 OpenCV/FFMPEG 中编写了一个用于执行编码的应用程序,该应用程序从相机捕获图像并将它们编码为所需的编码格式。在基准测试中,我了解到 MJPEG 编码比 MPEG-4 编码花费的时间要长得多。我预计情况会有所不同。将单个帧编码为 MPEG-4 大约需要 31 毫秒,而编码为 MJPEG 大约需要 80 毫秒。与 MPEG-4 相比,MJPEG 真的需要这么长时间吗?
【问题讨论】:
标签:
performance
video
ffmpeg
video-encoding
mpeg-4
【解决方案1】:
MJPeg 理论上更快,主要是因为没有帧间压缩。
但是,MPEG-4 有一些方法可以更快。以下是需要考虑的几个因素:
MPEG-4 实际上可以是两种不同的格式,“第 2 部分”或
“第 10 部分”,第 2 部分要快得多。有关详细信息,请参见此处:
http://en.wikipedia.org/wiki/MPEG-4_Part_2。
编码器的设置可以提高一个数量级
不同之处。给定格式的快速设置可以是 10 倍或更多
比设置较慢的相同格式更快(速度/质量
权衡)。
MPEG-4 的编码器是一些最优化的代码片段
在这个星球上。他们仍然大量使用汇编语言。他们可以
在实践中很容易比另一种不重的格式更快
优化。
如果您的 IO 速度较慢(网络、硬盘驱动器),这可能会影响结果。
例如没有压缩是最快的吧?但这需要
是时候写大文件了。
因此,在实践中,由于这些原因和其他边缘情况,MJPEG 可能会变慢。