M-JPEG、MPEG4、H.264都有何区别 依维安防论坛

压缩方式是网络视频服务器和网络摄像机的核心技术,压缩方式很大程度上决定着图像的质量、压缩比、传输效率、传输速度等性能,它是评价网络视频服务器和网络摄像机性能优劣的重要一环。 随着多媒体技术的发展,相继推出了许多压缩编码标准,目前主要有JPEG/M-JPEG、H.261/H.263和MPEG等标准。
  1、JPEG/M-JPEG
  ①、JPEG是一种静止图像的压缩标准,它是一种标准的帧内压缩编码方式。当硬件处理速度足够快时,JPEG能用于实时动图像的视频压缩。在画面变动较小的情况下能提供相当不错的图像质量,传输速度快,使用相当安全,缺点是数据量较大。
  ②、M-JPEG源于JPEG压缩技术,是一种简单的帧内JPEG压缩,压缩图像质量较好,在画面变动情况下无马赛克,但是由于这种压缩本身技术限制,无法做到大比例压缩,录像时每小时约1-2GB空间,网络传输时需要2M带宽,所以无论录像或网络发送传输,都将耗费大量的硬盘容量和带宽,不适合长时间连续录像的需求,不大实用于视频图像的网络传输。
  2、H.261/H.263
  ①、H.261标准通常称为P*64,H.261对全色彩、实时传输动图像可以达到较高的压缩比,算法由帧内压缩加前后帧间压缩编码组合而成,以提供视频压缩和解压缩的快速处理。由于在帧间压缩算法中只预测到后1帧,所以在延续时间上比较有优势,但图像质量难以做到很高的清晰度,无法实现大压缩比和变速率录像等。
  ②、H.263的基本编码方法与H.261是相同的,均为混合编码方法,但H.263为适应极低码率的传输,在编码的各个环节上作了改进,如以省码字来提高编码图像的质量,此外,H.263还吸取了MPEG的双向运动预测等措施,进一步提高帧间编码的预测精度,一般说,在低码率时,采用H.263只要一半的速率可获得和H.261相当的图像质量。
3、MPEG
  MPEG是压缩运动图像及其伴音的视音频编码标准,它采用了帧间压缩,仅存储连续帧之间有差别的地方 ,从而达到较大的压缩比。MPEG现有MPEG—1、MPEG—2和MPEG—4三个版本,以适应于不同带宽和图像质量的要求。
  ①、MPEG—1的视频压缩算法依赖于两个基本技术,一是基于16*16(像素*行)块的运动补偿,二是基于变换域的压缩技术来减少空域冗余度,压缩比相比M-JPEG要高,对运动不激烈的视频信号可获得较好的图像质量,但当运动激烈时,图像会产生马赛克现象。 MPEG-1以1.5Mbps的数据率传输视音频信号,MPEG-1在视频图像质量方面相当于VHS录像机的图像质量,视频录像的清晰度的彩色模式≥240TVL,两路立体声伴音的质量接近CD的声音质量。 MPEG-1是前后帧多帧预测的压缩算法,具有很大的压缩灵活性,能变速率压缩视频,可视不同的录像环境,设置不同的压缩质量,从每小时80MB至400MB不等,但数据量和带宽还是比较大。
  ②、MPEG-2它是获得更高分辨率(720*572)提供广播级的视音频编码标准。MPEG-2作为MPEG-1的兼容扩展,它支持隔行扫描的视频格式和许多高级性能包括支持多层次的可调视频编码,适合多种质量如多种速率和多种分辨率的场合。它适用于运动变化较大,要求图像质量很高的实时图像。对每秒30帧、720*572分辨率的视频信号进行压缩,数据率可达3-10Mbps。由于数据量太大,不适合长时间连续录像的需求。
  ③、MPEG-4是为移动通信设备在Internet网实时传输视音频信号而制定的低速率、高压缩比的视音频编码标准。 MPEG-4标准是面向对象的压缩方式,不是像MPEG-1和MPEG-2那样简单地将图像分为一些像块,而是根据图像的内容,其中的对象(物体、人物、背景)分离出来,分别进行帧内、帧间编码,并允许在不同的对象之间灵活分配码率,对重要的对象分配较多的字节,对次要的对象分配较少的字节,从而大大提高了压缩比,在较低的码率下获得较好的效果, MPEG-4支持MPEG-1、MPEG-2中大多数功能,提供不同的视频标准源格式、码率、帧频下矩形图形图像的有效编码。
  总之,MPEG-4有三个方面的优势:
  ①、具有很好的兼容性;
  ②、MPEG-4比其他算法提供更好的压缩比,最高达200:1;
  ③、MPEG-4在提供高压缩比的同时,对数据的损失很小。所以,MPEG-4的应用能大幅度的降低录像存储容量,获得较高的录像清晰度,特别适用于长时间实时录像的需求,同时具备在低带宽上优良的网络传输能力。

4,H.264是ITU-T的VCEG(视频编码专家组)和ISO/IEC的MPEG(活动图像编码专家组)的联合视频组(JVT:joint video team)开发的一个新的数字视频编码标准,它既是ITU-T的H.264,又是ISO/IEC的MPEG-4的第10 部分。1998年1月份开始草案征集,1999年9月,完成第一个草案,2001年5月制定了其测试模式TML-8,2002年6月的 JVT第5次会议通过了H.264的FCD板。目前该标准还在开发之中,预计明年上半年可正式通过。
  H.264和以前的标准一样,也是DPCM加变换编码的混合编码模式。但它采用“回归基本”的简洁设计,不用众多的选项,获得比H.263++好得多的压缩性能;加强了对各种信道的适应能力,采用“网络友好”的结构和语法,有利于对误码和丢包的处理;应用目标范围较宽,以满足不同速率、不同解析度以及不同传输(存储)场合的需求;它的基本系统是开放的,使用无需版权。
  在技术上,H.264标准中有多个闪光之处,如统一的VLC符号编码,高精度、多模式的位移估计,基于4×4块的整数变换、分层的编码语法等。这些措施使得H.264算法具有很的高编码效率,在相同的重建图像质量下,能够比H.263节约50%左右的码率。H.264的码流结构网络适应性强,增加了差错恢复能力,能够很好地适应IP和无线网络的应用。
其实现在多数的什么H.264都是H.263++通过改进后的算法,是压缩率变的小了点!如果是从单个画面清晰度比较,MPEG4有优势;从动作连贯性上的清晰度,H.264有优势!

算法还需改进啊! 比如虽然都是h264,但效果还是有差距啊!    发扬国内克隆优势,多克隆点老外的算法技术来吧。    高清晰=大存储量  小存储量=“不清楚"    真正解决瓶颈问题,才是关键啊。 什么时候监控摄像机效果达到普通家用相机水平,存储量和现在cif差不多。  那时候,监控主要防卫目的才真正实现了。    现在高清(1028*1024等)分辨率上去了,人、物等拍清楚了,但存储动不动就磁盘阵列柜,造价高。    标准(720*576等)分辨率很一般,人、物等一半情况拍不清楚,拍清楚还得多加摄像机和选择合适的安装点和角度镜头搭配,存储也不低,多数也要磁盘阵列柜,造价也不低。    最低标准(352*288等)分辨率差,人、物80%拍不清楚,要拍清楚,完全要靠多加摄像机和选择合适的安装点角度,镜头搭配很关键。 存储量低,一般不需要磁盘阵列柜,造价低。      上面技术现在不能解决,那只能用球机靠类似行为识别等军转民算法解决了,比如入口,看到人或者车,自动拉近到合适的焦距点,自动截图保存等等,类似这些算法技术。但这类算法,民用市场技术也很一般啊。    总的来说,视频监控技术,没发展到理想的阶段,革命尚未成功,同志们还得继续努力啊,呵呵。

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

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

相关文章

Django/Flask/Tornado三大web框架性能分析

写在前面:本文的数据涉及到之前遇到过的问题,大概一次 http 请求到收到响应需要多少时间。这个问题在实际工作中与框架有比较大的关系,因此特别就框架的性能做了一次分析。这里使用之前的一个报告数据: Pythons Web Framework Ben…

python urllib模块学习笔记

这个模块是最基本最常用的,以前看过,总结一下 #coding : utf-8import urlliburl http://cnblogs.com#代理服务器proxies {http:http://127.0.0.1:8087}#使用代理服务器打开r urllib.urlopen(url,proxies proxies)print r.info()print r.getcode()pri…

hibernate基础工具findBySQL学习

public List<Map<String,Object>> findBySQL(String sql,Map<String,Object> param,int start,int max) {log.debug("finding List by hql");try {       //最后返回map map的key可为别名和数据库字段SQLQuery querysessionFactory.getCurr…

python处理ini文件_python对ini配置文件处理

>>> cf.read("test.ini") #读取配置文件[test.ini]>>> cf.sections() #片段名[base, callback]>>> cf.options("callback") #配置…

Python实现自动推本地github博客到远程仓库

Python实现自动推本地github博客到远程仓库 以前的简单版本 通过python中的os模块操作系统命令 详情可参考:Python实现一行代码推本地git到远程仓库 升级版本 本次加入了监听文件修改功能 这样脚本只需在后台运行,即可检测到对应的文件夹中的内容是否变化 如果变化,则调用…

H.264/MPEG-4 AVC

维基百科&#xff0c;自由的百科全书跳转到&#xff1a; 导航, 搜索 跳过字词转换说明 汉漢▼▲为了阅读方便&#xff0c;本文使用全文手工轉換。转换内容&#xff1a;本文采用电脑和信息技术组全文转换 [查看] • [编辑] • [强制刷新] 以下為本條目單獨的全文轉換&#xff0c…

JavaScript 专题之函数柯里化

JavaScript 专题系列第十三篇&#xff0c;讲解函数柯里化以及如何实现一个 curry 函数 定义 维基百科中对柯里化 (Currying) 的定义为&#xff1a; In mathematics and computer science, currying is the technique of translating the evaluation of a function that takes m…

机器学习模板

根据心情补充&#xff0c;语言都是Python hash&#xff0c;把所有的文本转化成数字 from sklearn.preprocessing import LabelEncoder for c in train.columns:if train[c].dtype object:lbl LabelEncoder()lbl.fit(list(train[c].values) list(test[c].values))train[c] l…

漂亮特殊字体可复制_12个创意字体免费下载网站

今天为大家介绍12个创意字体的网站&#xff0c;这些网站都有提供免费下载的字体哦&#xff0c;希望对大家在创作上面有所帮助。FontSpace在Fontspace上有超过42000种免费字体。在这里字体被整齐的分门归类&#xff0c;帮助你找到想要的字体。除了典型的“serif” “script”等&…

使用postman测试接口

Postman是一款功能强大的网页调试与发送网页HTTP请求的Chrome插件。在java web开发中使用非常多&#xff0c;经常用来测试接口。 使用postman模拟json数据的发送 第一步:在header里边设置发送数据的类型 Paste_Image.png设置发送数据类型为json&#xff0c;也就是key为Content-…

删除github上的commit历史记录

删除github上的commit历史记录 起步 今天小编发现了git克隆下来的远程库特别大: 经过查询之后发现是每次推送之后都会留下记录缓存&#xff0c;这样很多没用的记录就会占用多余的空间&#xff0c;别人克隆的时候也会多耗费时间&#xff0c;今天我查到了一个清除无用记录的方…

DirectShow组件原理分析及应用

1 DirectX简介  DirectX是Microsoft公司为游戏和其他高性能多媒体应用所提供的一套底层应用程序编程接口。这些接口包括对二维和三维图形&#xff0c;声效和音乐&#xff0c;输入设备以及多玩家网络游戏等的支持。目前DirectX的最高版本是DirectX 9.0。  1.1 DirectX的组成…

接口安全

老大发了篇文章&#xff0c;让看如何写出安全的接口。 如何写出安全的API接口&#xff1f;接口参数加密签名设计思路转载于:https://www.cnblogs.com/Tpf386/p/7053795.html

python中xml模块_python学习第十五天-2(XML模块)

也是一种文本转换形式。importxxxxxxxxxxxxxxxxxxx asxx,可以用xx代替xxxxxxxxxxxxxxxxxxx模块xml文件的新增&#xff0c;修改&#xff0c;删除&#xff0c;查询。新增&#xff1a;​import xml.etree.ElementTreeas ET​new_xmlET.Element(nameList)#创建xml的根节点相当于na…

ubuntu系统下Java环境JDK的安装

Debian Linux下安装jdk 下载压缩包 官网下载对应的.gz包 点击下载 解压文件 创建一个目录用于存放解压后的文件&#xff0c;并解压缩到该目录下 sudo mkdir /opt/java8 sudo tar -zxvf jdk-8u221-linux-x64.tar.gz -C /opt/java8修改环境变量 sudo vim ~/.bashrc 进入…

栈溢出笔记1.3 准备Shellcode

经过1.1和1.2节的讲述&#xff0c;我们已经知道了怎样更改EIP的值。程序运行函数之后将跳转到我们设定的位置開始运行&#xff0c;因此&#xff0c;我们须要准备一个自己的程序&#xff0c;接手后面的工作。这是一个什么样的程序&#xff1f;是一个C语言编写的代码&#xff1f;…

DirectShow开发快速入门之慨述

文章来源&#xff1a;http://tech.163.com/school 2005-08-18 10:21:32 来源: 天极网摘要&#xff1a;本篇文档概括性的介绍了DirectShow的主要组成部分&#xff0c;以及一些Directshow的基本概念。熟悉这些基本的知识对于Directshow的应用开发或者过滤器的开发者都会有所帮助…

Android selector中的item的顺序

在selector中&#xff0c;要将默认状态的item放在最后面&#xff0c;因为一旦前面的item满足匹配条件&#xff0c;后面的item就不会去匹配。因此&#xff0c;把默认状态的item放在前面的话&#xff0c;后面的item没有执行的机会转载于:https://www.cnblogs.com/xiaoyuersdch/p/…

权限表使用联合主键吗_天天写 order by,你知道Mysql底层执行流程吗?

前言 在实际的开发中一定会碰到根据某个字段进行排序后来显示结果的需求&#xff0c;但是你真的理解order by在 Mysql 底层是如何执行的吗&#xff1f;假设你要查询城市是苏州的所有人名字&#xff0c;并且按照姓名进行排序返回前 1000 个人的姓名、年龄&#xff0c;这条 sql 语…

nodejs简介

nodejs是啥&#xff1f; Node.js是运行在服务端的JavaScript。 Node.js是一个基于Chrome JavaScript运行时建立的一个平台。 Node.js是一个事件驱动I/O服务端JavaScript环境&#xff0c;基于Google的V8引擎&#xff0c;V8引擎执行Javascript的速度非常快&#xff0c;性能非常…