I帧、B帧和P帧的特点和编码的基本流程

I帧、B帧和P帧的特点:

I帧:帧内编码帧
I帧特点:
1.它是一个全帧压缩编码帧。它将全帧图像信息进行JPEG压缩编码及传输;
2.解码时仅用I帧的数据就可重构完整图像;
3.I帧描述了图像背景和运动主体的详情;
4.I帧不需要参考其他画面而生成;
5.I帧是P帧和B帧的参考帧(其质量直接影响到同组中以后各帧的质量);
6.I帧是帧组GOP的基础帧(第一帧),在一组中只有一个I帧;
7.I帧不需要考虑运动矢量;
8.I帧所占数据的信息量比较大。

P帧:前向预测编码帧。
P帧的预测与重构:P帧是以I帧为参考帧,在I帧中找出P帧“某点”的预测值和运动矢量,取预测差值和运动矢量一起传送。在接收端根据运动矢量从I帧中找出P帧“某点”的预测值并与差值相加以得到P帧“某点”样值,从而可得到完整的P帧。
P帧特点:
1.P帧是I帧后面相隔1~2帧的编码帧;
2.P帧采用运动补偿的方法传送它与前面的I或P帧的差值及运动矢量(预测误差);
3.解码时必须将I帧中的预测值与预测误差求和后才能重构完整的P帧图像;
4.P帧属于前向预测的帧间编码。它只参考前面最靠近它的I帧或P帧;
5.P帧可以是其后面P帧的参考帧,也可以是其前后的B帧的参考帧;
6.由于P帧是参考帧,它可能造成解码错误的扩散;
7.由于是差值传送,P帧的压缩比较高


B帧:双向预测内插编码帧。
B帧的预测与重构
B帧以前面的I或P帧和后面的P帧为参考帧,“找出”B帧“某点”的预测值和两个运动矢量,并取预测差值和运动矢量传送。接收端根据运动矢量在两个参考帧中“找出(算出)”预测值并与差值求和,得到B帧“某点”样值,从而可得到完整的B帧。
B帧特点
1.B帧是由前面的I或P帧和后面的P帧来进行预测的;
2.B帧传送的是它与前面的I或P帧和后面的P帧之间的预测误差及运动矢量;
3.B帧是双向预测编码帧;
4.B帧压缩比最高,因为它只反映丙参考帧间运动主体的变化情况,预测比较准确;
5.B帧不是参考帧,不会造成解码错误的扩散。

注:I、B、P各帧是根据压缩算法的需要,是人为定义的,它们都是实实在在的物理帧,至于图像中的哪一帧是I帧,是随机的,一但确定了I帧,以后的各帧就严格按规定顺序排列

I帧、B帧、P帧的编码基本流程:

I 帧编码的基本流程为:
(1) 进行帧内预测,决定所采用的帧内预测模式。
(2) 像素值减去预测值,得到残差。
(3) 对残差进行变换和量化。
(4) 变长编码和算术编码。
(5) 重构图像并滤波,得到的图像作为其它帧的参考帧。


P 帧和 B 帧编码的基本流程为:
(1) 进行运动估计,计算采用帧间编码模式的率失真函数(节)值。P帧只参考前面的帧,B 帧可参考后面的帧。
(2) 进行帧内预测,选取率失真函数值最小的帧内模式与帧间模式比较,确定采用哪种编码模式。
(3) 计算实际值和预测值的差值。
(4) 对残差进行变换和量化。
(5) 熵编码,如果是帧间编码模式,编码运动矢量

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

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

相关文章

Java笔记11-【异常、线程】

主要内容 异常、线程 第一章 异常 1.1 异常概念 异常,就是不正常的意思。在生活中:医生说,你的身体某个部位有异常,该部位和正常相比有点不同,该部位的功能将受影响.在程序中的意思就是: 异常 :指的是程序在执行过程中,出现的…

摘抄自知乎的redis相关

1.知乎日报的基础数据和统计信息是用 Redis 存储的,这使得请求的平均响应时间能在 10ms 以下。其他数据仍然需要存放在另外的地方,其实完全用 Redis 也是可行的,主要的考量是内存占用。就使用经验而言,Redis 的数据结构很丰富&…

Java微信开发_00_资源汇总贴

1.微信公众平台技术文档(https://mp.weixin.qq.com/wiki?tresource/res_main&idmp1445241432) 2.微信企业号开发接口文档(http://qydev.weixin.qq.com/wiki/index.php?title%E4%B8%BB%E5%8A%A8%E8%B0%83%E7%94%A8) 3.企业微…

webgl获取鼠标形状_三模无线搭配对称手型设计,游戏致胜利器,ROG烈刃2无线鼠标...

要想有效地提升游戏体验,我认为除了电脑主机本身的硬件配置要尽可能的硬核之外,玩游戏时所选配的鼠标、键盘等外设的作用也是不可忽视的,所以很多比较注重游戏体验的游戏爱好者都会选择一款自己用着比较顺手的游戏外设装备。我这次入手的华硕…

牛人学习h264运动估计的方法

转载自:http://bbs.chinavideo.org/forumdisplay.php?fid29 Chinavideo,一个非常棒的学习论坛 从答辩结束(2008-12-13)起就想写一篇文章给学习运动估计的朋友们,因为我知道有很多正在写论文的朋友们,特别是正在入门的朋友们&…

Java笔记11-软件开发流程设计原则

今天内容: 1.常用的设计原则2.常用的设计模式3.常用的查找算法4.常用的排序算法 1.常用的设计原则(记住) 1.1软件的开发流程 软件开发授权-投标 -> 100万 1. 编写需求分析文档 > 2. 概要设计文档(架构) > 3. 详细设计文档(类图) > 4. 编码(项目经理分具体任…

magnify.m —— 图像局部放大镜工具函数

magnify.m 函数下载地址:magnify - File Exchange - MATLAB Central; magnify.m 函数在执行时,是一种交互式处理。 简单演示如下: clear, clc% 加载图像到内存,如读取matlab自带的图像,并将其显示出来 I i…

【大数据系列】hadoop单节点安装官方文档翻译

Hadoop: Setting up a Single Node Cluster. HADOOP:建立单节点集群 PurposePrerequisites Supported PlatformsRequired SoftwareInstalling SoftwareDownloadPrepare to Start the Hadoop ClusterStandalone OperationPseudo-Distributed Operation Configuration…

qmlcanvas绘制3d图形_透视Matplotlib核心功能和工具包 - 绘制3D图形

关联知识MatplotlibPython线图在此,我们将学习如何创建3D线图。 它类似于2D等效折线图,并且2D折线图的许多属性都结转到3D。我们将在相同的轴上绘制凹凸曲线,并从不同角度查看它们,例如平行视图,顶视图以及围绕z轴的旋…

264 解码之 yuv

博客访问量日渐减少,于是我决定丢一点技术东东上去,吸引爬虫光顾一下。先谈谈 h.264 的编解码问题。个人建议做视频、音频的孩子们,一定要抓住 RFC 和 standard ,然后多看开源编解码程序。近来抽空看了两个 decoder ,一…

Java笔记12-函数式接口

主要内容 自定义函数式接口函数式编程常用函数式接口 第一章 函数式接口 概念 函数式接口在java中指的是:有且只有一个抽象方法的接口 函数式接口,即适用于函数式编程场景的接口.而java中共的函数式编程体现就是Lambda,所以函数式接口就是可以适用于lambda使用的接口.只有…

雷军晒3亿估值,意欲“收编”台湾硬件创业者?

1月13日,在台湾的CSMIC 2015移动互联网两岸年会上,雷军以猎豹移动董事长的身份做了《给年轻创业者的两大方向性建议》演讲。 演讲中雷军表示,“在未来5到10年,特别适合台湾年轻创业者做的两个方向,一个是移动互联网&am…

网页“console”输出图文信息

http://www.monmonkey.com/javascript/jiben2.html 参考以上链接中的转义字符使用。 http://www.cnblogs.com/Wayou/p/chrome_dev_tool_style_console.html https://segmentfault.com/a/1190000002511877 以上链接里有各种 console 输出 ASCII图文的实现方法。 ASCII图文动态效…

记事本安卓软件代码设计_用轻量级工具 Notepad3 替代 36 岁的微软记事本

一不小心,微软记事本发布 36 年了。虽然微软记事本自 1985 年 Windows 1.0 以来已包含在所有版本的 Microsoft Windows 中,但它太基础了,以至于几乎所有人都要替代它,比如轻量级的 Notepad3,支持代码高亮/折叠、括号匹…

H.264编码技术

H.264基本概况随着HDTV的兴起,H.264这个规范频频出现在我们眼前,HD-DVD和蓝光DVD均计划采用这一标准进行节目制作。而且自2005年下半年以来,无论是NVIDIA还是ATI都把支持H.264硬件解码加速作为自己最值得夸耀的视频技术。H.264到底是何方“神…

Java笔记13-兄弟连在线考试系统

今天内容: 1.兄弟连在线考试系统 1.1 软件开发的流程 需求分析文档 > 概要设计文档 > 详细设计文档 > 编码和测试1.2 编写目的 (1)复习JavaSE所学的所有内容。 (2)锻炼基本的编程能力。 1.3 功能分析 考试系统:(1)学员系统a.修改密码b.开始…

macOS自带Python2.7删除之后的悲剧

2019独角兽企业重金招聘Python工程师标准>>> 起因 今天打开xcode想要开始继续写项目的时候悲剧了. Loading a plug-in failed. The plug-in or one of its prerequisite plug-ins may be missing or damaged and may need to be reinstalled. 尝试用终端打开看看报…

EasyUI 表格点击右键添加或刷新 绑定右键菜单

例1 在HTML页面中设置一个隐藏的菜单&#xff08;前提是已经使用封装的Easyui&#xff09; 代码&#xff1a; <div id"contextMenu_jygl" class"easyui-menu" style"width: 80px; display: none;"> <div …

python神奇的小海龟_Python笔记_第一篇_面向过程_第一部分_8.画图工具(小海龟turtle)...

turtle 是一个简单的绘图工具。提供一个小海龟&#xff0c;可以把它理解为一个机器人&#xff0c;只能听懂有限的命令&#xff0c;且绘图窗口的原点(0,0)在中间&#xff0c;默认海龟的方向是右侧海龟的命令包括三类&#xff1a;运动命令、笔画控制命令、其他命令。1. 运动命令…

jupyter浅析

一、jupyter 起步:简介 Jupyter Notebook是一个开源的Web应用程序&#xff0c;允许用户创建和共享包含代码、方程式、可视化和文本的文档。它的用途包括&#xff1a;数据清理和转换、数值模拟、统计建模、数据可视化、机器学习等等。它具有以下优势&#xff1a; 可选择语言&a…