视频编解码技术:M-JPEG与H.264压缩方式对比分析
视频编解码技术:M-JPEG与H.264压缩方式对比分析
在视频传输中,压缩技术扮演着至关重要的角色。常见的视频压缩方式包括JPEG和H.264。本文将从背景、压缩效果对比到结论,对这两种压缩方式进行全面分析。
简介
在视频传输过程中,压缩是必不可少的环节。常见的压缩方式包括JPEG压缩和H.264压缩。虽然H.264由于其较高的压缩比而被广泛应用,特别是在实时场景中,但对于带宽没有限制的场景,为了获得更好的画质,选择JPEG压缩会更为合适。
背景
在Linux系统下,普通USB摄像头的视频采集通常有两种方式:
V4L2_PIX_FMT_MJPEG:这种方式采集得到的是经过MJPEG压缩的图片,图片格式为JPEG/JPG,后缀为.jpg或.jpeg。直接将采集到的.jpeg数据依序循环写入一个文件,得到的流并不能直接播放,需要封装成avi等视频格式才能正常播放。
V4L2_PIX_FMT_YUYV:这种方式采集得到的是YUYV格式的原始图像格式文件,后缀为.yuv,得到的yuv数据文件可直接利用pYUV等专业yuv格式查看器进行播放。yuv数据可经HEVC(H265)、H264、VP8、VP9等方式进行编码压缩,通过h.264压缩可得到h264码流,H264码流可直接用VLC播放器进行播放。
压缩效果对比
下面是网友测试得到的数据,这里只是做简单的摘录:
试验条件:
- 统一条件:采集50帧图像(1080p分辨率、帧率5fps,视频时长10s)
对比指标:
- 性能对比:编码时间、压缩比、图像质量。
JPEG 数据
H.264 数据
结论
就压缩率来说,H.264远远优于M-JPEG,H.264的压缩比一般能达到1:50甚至1:100以上,而M-JPEG压缩比一般小于1:20;同时由于高压缩率,经H.264压缩出的图像数据量远远小于M-JPEG,更利于实时传输,占用网络带宽更少。
图像质量:由于M-JPEG压缩率较小,所以能达到跟原图像接近的画质和清晰度。而H.264为了满足高压缩率,所以在图像质量上略有损失。
结语:两种压缩方式的选择最主要还是在于使用场景,合理选用。若实时性要求较高,则h.264更适合,因为数据量较小,便于传输;若对实时性要求不是很高,能接受大数据量的图像,且对图像质量要求更高的话,可考虑M-JPEG方式。