【视频编解码】M-JPEG压缩、H.264压缩 对比

简介

参考这篇文章:https://blog.csdn.net/qq_41248872/article/details/83590337

写的比较好,这里就不赘述了。

我们在视频传输的时候,需要压缩,常见的压缩包括:

  • jpeg 压缩
  • h264 压缩

当然使用最多的还是 264, 毕竟他的压缩比高嘛。对于一些实时的场景比较有优势,但是这玩意还是得分不同的场合吧,如果对于带宽没限制,为了更好的画质,还是应该选 jpeg 压缩比较好。

背景

Linux下,一般的普通USB摄像头V4L2视频采集有两种方式:

  • V4L2_PIX_FMT_MJPEG
  • V4L2_PIX_FMT_YUYV

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 数据

在这里插入图片描述

h264 数据

在这里插入图片描述

结论

1.就压缩率来说,H.264远远优于M-JPEG,H.264的压缩比一般能达到1:50甚至1:100以上,而M-JPEG压缩比一般小于1:20;同时由于高压缩率,经H.264压缩出的图像数据量远远小于M-JPEG,更利于实时传输,占用网络带宽更少。

2.图像质量:由于M-JPEG压缩率较小,所以能达到跟原图像接近的画质和清晰度。而H.264为了满足高压缩率,所以在图像质量上略有损失。

结语:两种压缩方式的选择最主要还是在于使用场景,合理选用。若实时性要求较高,则h.264更适合,因为数据量较小,便于传输;若对实时性要求不是很高,能接受大数据量的图像,且对图像质量要求更高的话,可考虑M-JPEG方式。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/691470.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

第二件事 在Java 虚拟机 (JVM)跑一个程序

上篇文章写了 在 WINDOWS上 创建了一个 JVM, 好! 现在在这个 Java 虚拟计算机系统上跑一个Java语言编写的小程序; 题目: 用Java语言 编写一个小程序 在Console界面 打印 整数 1-10 (回头了一下源程序,靠,应…

【力扣每日一题】力扣105从前序与中序遍历序列构造二叉树

题目来源 力扣105从前序与中序遍历序列构造二叉树 题目概述 给定两个整数数组 preorder 和 inorder ,其中 preorder 是二叉树的先序遍历, inorder 是同一棵树的中序遍历,请构造二叉树并返回其根节点。 思路分析 前序遍历的顺序是&#x…

用windbg调试uefi在hyper-v

添加环境变量 CLANG_BINC:\Program Files\NASM\ NASM_PREFIXC:\Program Files\NASM\ 添加path C:\Program Files (x86)\Windows Kits\10\Tools\x64\ACPIVerify 修改edk2-master\Conf\target.txt TARGET_ARCH X64 编译这两个包 #ACTIVE_PLATFORM EmulatorPkg/…

算法沉淀——BFS 解决拓扑排序(leetcode真题剖析)

算法沉淀——BFS 解决拓扑排序 01.课程表02.课程表 II03.火星词典 Breadth-First Search (BFS) 在拓扑排序中的应用主要是用来解决有向无环图(DAG)的拓扑排序问题。拓扑排序是对有向图中所有节点的一种线性排序,使得对于每一条有向边 (u, v)&…

Recorder 实现语音录制并上传到后端(兼容PC和移动端)

Recorder 首页&#xff1a;https://github.com/xiangyuecn/Recorder 一、安装 npm install recorder-core二、代码部分 1. HTML页面 <template><div><el-inputv-model"ttsText"type"textarea"placeholder"请输入内容"><…

外汇天眼:进Goccfx投资群前还好好的,踢出群后本金都没了

在外汇诈骗中&#xff0c;许多骗局都是以“拉群荐股”的方式&#xff0c;将一个个无辜的外汇投资者拽入虚假的外汇平台&#xff0c;投资者一旦进群&#xff0c;结果往往是被反向喊单而爆仓亏损。还有更过分的&#xff0c;就是诈骗分子利用投资者急于挽回损失的心理&#xff0c;…

YOLOv8-Openvino和ONNXRuntime推理【CPU】

1 环境&#xff1a; CPU&#xff1a;i5-12500 2 安装Openvino和ONNXRuntime 2.1 Openvino简介 Openvino是由Intel开发的专门用于优化和部署人工智能推理的半开源的工具包&#xff0c;主要用于对深度推理做优化。 Openvino内部集成了Opencv、TensorFlow模块&#xff0c;除此…

前端|Day3:CSS基础(黑马笔记)

Day3:CSS基础 目录 Day3:CSS基础一、CSS初体验二、CSS引入方式三、选择器1.标签选择器2.类选择器3.id选择器4.通配符选择器 四、盒子尺寸和背景色五、文字控制属性1.字体大小2.字体样式&#xff08;是否倾斜&#xff09;3.行高单行文字垂直居中 4.字体族5.font复合属性6.文本缩…

自适应网站建站源码系统 带完整的安装代码包以及搭建教程

在当今数字化时代&#xff0c;拥有一个功能全面且能够适应不同设备的网站对于企业和个人来说至关重要。罗峰给大家分享一款全新的自适应网站建站源码系统&#xff0c;它不仅提供了完整的安装代码包&#xff0c;还附带了详细的搭建教程&#xff0c;帮助用户轻松构建出具有响应式…

Atcoder ABC340 C - Divide and Divide

Divide and Divide&#xff08;分而治之&#xff09; 时间限制&#xff1a;2s 内存限制&#xff1a;1024MB 【原题地址】 所有图片源自Atcoder&#xff0c;题目译文源自脚本Atcoder Better! 点击此处跳转至原题 【问题描述】 【输入格式】 【输出格式】 【样例1】 【样例…

Windows制作Ubuntu的U盘启动盘

概要&#xff1a; 本篇演示在Windows10中制作Ubuntu22.04的U盘启动盘 一、下载Ubuntu22.04的iso文件 在浏览器中输入https://ubuntu.com去Ubuntu官网下载Ubuntu22.04的iso文件 二、下载Ultraiso 在浏览器中输入https://www.ultraiso.com进入ultraiso官网 点击FREE TRIAL&a…

com.alibaba.fastjson.JSONException: toJSON error的原因

问题&#xff1a; 导出接口报错&#xff0c;显示json格式化异常 发现问题&#xff1a; 第一个参数为HttpResponse,转换成json的时候报错 修改方法&#xff1a; 1.调换两个参数的位置 2.在aop判断里边 把ServletAPI过滤掉 Before("excudeWebController()")pub…

洛谷C++简单题小练习day12—寻找最小值小程序

day12--寻找最小值--2.16 习题概述 题目描述 给出 n 和 n 个整数 ai​&#xff0c;求这 n 个整数中最小值是什么。 输入格式 第一行输入一个正整数 n&#xff0c;表示数字个数。 第二行输入 n 个非负整数&#xff0c;表示 1,2…a1​,a2​…an​&#xff0c;以空格隔开。 …

【医学大模型 补全主诉】BioGPT + LSTM 自动补全医院紧急部门主诉

BioGPT LSTM 自动补全医院紧急部门主诉 问题&#xff1a;针对在紧急部门中自动补全主诉的问题子问题1: 提高主诉记录的准确性子问题2: 加快主诉记录的速度子问题3: 统一医疗术语的使用子问题4: 减少打字错误和误解子问题5: 提高非特定主诉的处理能力 解法数据预处理神经网络方…

【软考问题】-- 3 - IT知识 - 信息系统治理

一、基础问题 问题1:IT治理主要目标包括哪三个方面? 1⃣️与业务目标一致2⃣️有效利用信息与数据资源3⃣️风险管理问题2:IT治理的管理层次大致可分为三层是什么? (1)最高管理层(2)执行管理层(3)业务与服务执行层问题3:IT 治理和谐内容有哪些? a.组织职责

力扣145 二叉树的后序遍历 Java版本

文章目录 题目描述递归解法代码 非递归解法思路代码 题目描述 给你一棵二叉树的根节点 root &#xff0c;返回其节点值的 后序遍历 。 示例 1&#xff1a; 输入&#xff1a;root [1,null,2,3] 输出&#xff1a;[3,2,1] 示例 2&#xff1a; 输入&#xff1a;root [] 输出…

Linux【动静态库】

目录 1.软硬链接 1.1软硬链接的语法 1.2理解软硬链接 1.3目录文件的硬链接 1.4应用场景 1.5ACM时间 2.动静态库 2.1认识库 3.制作静态库 3.1静态库打包 3.2静态库的使用 4.制作动态库 4.1动态库打包 4.2动态库的链接使用 4.3动态库的链接原理 总结&#xff1…

论文阅读-基于动态权重的一致性哈希微服务负载均衡优化

论文名称&#xff1a;基于动态权重的一致性哈希微服务负载均衡优化 摘要 随着互联网技术的发展&#xff0c;互联网服务器集群的负载能力正面临前所未有的挑战。在这样的背景下&#xff0c;实现合理的负载均衡策略变得尤为重要。为了达到最佳的效率&#xff0c;可以利用一致性…

【数据结构】每天五分钟,快速入门数据结构(一)——数组

目录 一.初始化语法 二.特点 三.数组中的元素默认值 四.时间复杂度 五.Java中的ArrayList类 可变长度数组 1 使用 2 注意事项 3 实现原理 4 ArrayList源码 5 ArrayList方法 一.初始化语法 // 数组动态初始化&#xff08;先定义数组&#xff0c;指定数组长度&#xf…

AUTOSAR CP--chapter7从CAN网络学习Autosar通信

从CAN网络学习Autosar通信 前言缩写词CAN通信在AUTOSAR架构中的传输上位机配置 第六章总结&#xff1a;学习了如何使用工具的自动配置功能&#xff0c;位我们生成系统描述中部分ecu的BSW模块配置&#xff0c;但是自动配置的功能虽然为我们提供了极大的便利&#xff0c;我们仍然…