mjpeg和h264编解码器

时间:2011-02-10 06:56:03

标签: video video-encoding h.264 mjpeg

mjpeg和h264有什么区别?

3 个答案:

答案 0 :(得分:3)

Mjpeg只是单个文件或数据流中的jpeg文件列表。没有帧间压缩。换句话说,每一帧都是关键帧。

h264与Mjpeg非常不同 - 从这里开始:http://en.wikipedia.org/wiki/H.264/MPEG-4_AVC

(Mpeg(没有'j')与Mjpeg不同,但与H264非常相似)

答案 1 :(得分:0)

首先要知道H.264& MPEG-4 AVC& MPEG-4第10部分是相同的。检查this

现在

  1. 对于移动摄像机或高活动区域的图像,MPEG4和H.264相对于MJPEG提供的带宽节省很少。

  2. 正确的网络设计需要考虑更糟糕的情况,因此无论您是否使用MJPEG,MPEG4或H.264,都需要专用相同的带宽。

  3. 由于没有帧内压缩,MJPEG提供更高的质量。

  4. 与MJPEG不同,MPEG-4供应商偏离标准,增加了潜在的整合成本。

  5. 虽然H.264通常会显着降低带宽消耗,但它取决于多种因素(包括复杂性,流模式,帧速率和i帧速率)。 VBR与CBR的选择尤为重要,对使用和性能产生特别大的影响。最后,虽然H.264可以提供与MJPEG相同的可见图像质量,但根据您使用的设置(尤其是流模式),您可以轻松地产生更差的质量。

答案 2 :(得分:0)

视频压缩是通过两种预测形式实现的:

  • 内部预测:使用相同框架内的信息。
  • Inter 预测:使用参考框架中的信息。

帧间预测通常要好得多,因为它允许非常便宜地编码帧之间相似的视频区域。这就是H.264获得大部分压缩的地方。

单个JPEG图像只是一个帧内帧,而MJPEG只是一个JPEG图像序列。 MJPEG根本没有帧间。

事实上,即使是H.264帧内帧也能提供比JPEG帧更好的压缩效果(这也是Google推动WebP的部分原因)。

对于大多数使用情况,H.264将比MJPEG具有更好的压缩,但编码/解码过程要复杂得多,这就是为什么没有太多计算能力的东西,例如网络摄像头吐出MJPEG。

良好的H.264编码器必须是一个相当病态的情况,其表现与良好的MJPEG编码器一样糟糕,例如:随机生成的像素值。