MPEG学习

MPEG学习Mpeg:movingpictureexpertsgroup移动图片专家组导入:Mpeg技术在我理解就是我们对音视频信息的一个输出标准。主要包括MPEG-1、MPEG-2、MPEG-4、MP

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

Mpeg:moving picture experts group 移动图片专家组   

导入:Mpeg技术在我理解就是我们对音视频信息的一个输出标准。主要包括MPEG-1、MPEG-2、MPEG-4、MPEG-7及MPEG-21。这个输出标准牵涉到一个很重要的概念,就是压缩,可以说压缩技术是牵涉到mepg标准一步步升级的关键。那为啥要引入压缩呢?一来,我们采集的音频或者视频信息数据量过于庞大,占据存储器内存和需要较大的宽带传输。二来,这些数据中存在很大的信息冗余。所以通过去除不相关的信息或者相关度比较低的信息来实现压缩就成为了一种必然。   

视频压缩,关键概念:去除冗余,主要从时间冗余和空间冗余入手。

什么是空间冗余: 图像中有一片连续的区域,这个区域的像素都是相同的颜色,那么空间冗余就产生了。
什么是时间冗余:例如,人们在会议室中开会,随着会议的进行,时间在改变,但是背景(房间、家具等)一直是相同的、而且没有移动,变化的只是人们的动作和位置。这里的背景就反映为时间冗余。

而为了减少这种冗余,采取关键帧处理技术。在通信过程中每隔一段时间采取一次关键帧,传输时只传输关键帧的完整信息,两幅关键帧之间之传输与前一幅的不同之处(差帧)。关键帧的不足:传输过程中网络因素,造成失贞,如果连续失贞,而且关键帧的时间选取有比较大,那就非常难还原原来选取的图像了。

十分明显,数据的压缩程度,或者说数据输出比特率,决定于再量化的处理过程。不同的比特率需要不同的加权表。在MPEG中,有可能使用各种不同的加权表,应将所使用的加权表传送至解码器,以保证解码的正确性。

为什么会有mpeg这个标准:

  1. 对视频和音频采集信息进行压缩,那么如何压缩,怎么去做到最大限度的压缩,压缩需要考虑的方向。Group of pictures图像组。图像组的基本单位是帧。包含I P B帧,I帧是独立的,是关键帧,P(prohead向前的)需要依靠前面的I帧来识别,B(bidirectional双向的)需要依靠前后来识别,所以常见的一种情况是:网络不好的情况收不到I帧导致黑屏或者打马赛克的情况
  2. 视频压缩中,每帧代表一幅静止的图像。而在实际压缩时,会采取各种算法减少数据的容量,其中IPB就是最常见的。

I的压缩率是7(跟JPG差不多),P是20,B可以达到50,可见使用B帧能节省大量空间,节省出来的空间可以用来保存多一些I帧,这样在相同码率下,可以提供更好的画质

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/167437.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 请编写一个给list去重的函数_计算表达式

    请编写一个给list去重的函数_计算表达式c#拉姆达表达式实现List去重varlist=studentlist.OrderByDescending(a=>a.CreateDate).ToList();Console.WriteLine(JsonConvert.SerializeObject(list.Where((x,i)=>list.FindIndex(z=&gt…

    2022年9月16日
  • Oracle中MONTHS_BETWEEN函数的使用

    Oracle中MONTHS_BETWEEN函数的使用ORACLE中函数MONTHS_BETWEEN的使用 格式:MONTHS_BETWEEN(DATE1,DATE2)MONTHS_BETWEEN函数返回两个日期之间的月份数。SQL>selectmonths_between(to_date(‘20090228′,’yyyymmdd’),to_date(‘20080228′,’yyyymmdd’))asmonths…

    2022年7月12日
  • emWin学习[通俗易懂]

    emWin学习[通俗易懂]一、API学习  1.1、初始化     intGUI_Init(void); 函数来初始化emWin内部数据结构和变量。如果在初始化之前调用WM_SetCreateFlags()使用窗口管理器,则在GUI_Init()内创建背景窗口。(也就是窗口设置创建标记必须在初始化之前)。  1.2、显示文本     可以显示字符串、十六进制、十进制、二进制数,文

    2022年10月14日
  • 用MATLAB GUI做一个简单的绩点计算界面

    用MATLAB GUI做一个简单的绩点计算界面本文主要记录如何用MATLAB自带的GUI功能做一个绩点计算界面。并以此来简单介绍一下MATLABGUI的使用过程。完整代码见:https://github.com/ZhouJiaHuan/compute-GPA-master启动guide工具箱guide是MATLAB用来制作GUI界面的工具性,我们只要在MATLAB命令窗口中输入命令guide即可打开GUI制作界面,如下图:…

    2022年6月7日
  • mysql如何修改root用户的密码「建议收藏」

    mysql如何修改root用户的密码「建议收藏」方法1:用SETPASSWORD命令首先登录MySQL。格式:mysql>setpasswordfor用户名@localhost=password(‘新密码’);例子:mysql>setpasswordforroot@localhost=password(‘123’);方法2:用mysqladmin格式:mysqladmin-u用户名-…

    2022年5月20日
  • QT从下载到安装的具体教程

    QT从下载到安装的具体教程123

    2022年5月17日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号