视频压缩中,每帧代表一幅静止的图像。而在实际压缩时,会采取各种算法减少数据的容量,其中IPB就是最常见的。

简单地说,I帧是关键帧,属于帧内压缩。就是和AVI的压缩是一样的。P是向前搜索的意思。B是双向搜索。他们都是基于I帧来压缩数据。

I帧表示关键帧,你可以理解为这一帧画面的完整保留;解码时只需要本帧数据就可以完成(因为包含完整画面)

P帧表示的是这一帧跟之前的一个关键帧(或P帧)的差别,解码时需要用之前缓存的画面叠加上本帧定义的差别,生成最终画面。(也就是差别帧,P帧没有完整画面数据,只有与前一帧的画面差别的数据)

B帧是双向差别帧,也就是B帧记录的是本帧与前后帧的差别(具体比较复杂,有4种情况),换言之,要解码B帧,不仅要取得之前的缓存画面,还要解码之后的画面,通过前后画面的与本帧数据的叠加取得最终的画面。B帧压缩率高,但是解码时CPU会比较累~。

采用的压缩方法: 分组:把几帧图像分为一组(GOP),为防止运动变化,帧数不宜取多。

1.定义帧:将每组内各帧图像定义为三种类型,即I帧、B帧和P帧;

2.预测帧:以I帧做为基础帧,以I帧预测P帧,再由I帧和P帧预测B帧;

3.数据传输:最后将I帧数据与预测的差值信息进行存储和传输。

视频I帧、P帧、B帧总结相关推荐

  1. 怎么把动态图从python弄下来_Python将视频或者动态图gif逐帧保存为图片的方法

    本文是基于opencv将视频和动态图gif保存为图像帧.可以根据输入视频格式的不同,修改第21行. 对动图的处理不同于视频,PIL库包含对图像序列的基本支持.当打开gif图像时,自动加载第一帧.当图像 ...

  2. ffmpeg将视频流转化成图片帧,将图片帧转化为视频(基本无损)

    ffmpeg将视频流转化成图片帧,将图片帧转化为视频(基本无损) 其中-r 和-framerate 都是代表帧率(这个属性属于图片的属性,需要放在图片之前) -s 控制输出格式大小 本人在一个视频稳定 ...

  3. python怎么存为动图_Python将视频或者动态图gif逐帧保存为图片的方法

    本文是基于opencv将视频和动态图gif保存为图像帧.可以根据输入视频格式的不同,修改第21行. 对动图的处理不同于视频,PIL库包含对图像序列的基本支持.当打开gif图像时,自动加载第一帧.当图像 ...

  4. matlab打开mp4视频时报错,关于MATLAB提取MP4视频帧时候,跨帧取速度会慢

    项目需要将视频中每十帧抽取一帧,实际操作中发现,如果按照这样来写代码 vid = VideoReader(namestr); for ii = 1 : 10 : vid.NumberOfFrames ...

  5. 从视频中获取关键帧(I帧)

    一.关键帧介绍 视频压缩中,每帧代表一幅静止的图像.而在实际压缩时,会采取各种算法减少数据的容量,其中IPB就是最常见的. 简单地说,I帧是关键帧,属于帧内压缩.就是和AVI的压缩是一样的.P是向前搜 ...

  6. 视频编码(结构、帧内预测、帧间预测)参考自公众号Video Coding

    编码结构 H.265/HEVC(高效视频编码)提出了编码树单元CTU(Coding Tree Unit),CTU按四叉树方式向下划分成CU(Coding Unit).VCC允许的最大CTU尺寸为128 ...

  7. pyQT 视频播放器(三) 实现视频截图、获取每一帧数据

    pyQT 视频播放器(三) 实现视频截图.获取每一帧数据 背景 方法调研 详细代码说明 最终效果 总结: 参考资料 背景 在 "PyQt5 实现视频播放器(二) ,详细版本 ,适合新手入门& ...

  8. 视频画质增强最优解:微帧科技视频超高清引擎

    4年前,中国首次独立4K修复的经典影片<盗马贼>展露新颜,全国人民都见证了这部老电影焕然一新的一面,这是国内第一次推出独立进行4K修复的经典电影,代表着当时国内电影修复技术的最高水平. 迄 ...

  9. 获取视频帧数和总帧数

    获取视频帧数和总帧数代码 import cv2 videoPath=input("请输入视屏文件的绝对路径:") # 将视频文件路径转化为标准的路径 videoPath=video ...

  10. 相邻帧差法和三帧差法

    相邻帧差法和三帧差法 原文地址:https://blog.csdn.net/dcrmg/article/details/52234929 帧间差分法是通过对视频中相邻两帧图像做差分运算来标记运动物体的 ...

最新文章

  1. Ubuntu 16.04服务器版查看DHCP自动分配的IP、网关、DNS
  2. ajax接收到的数据是一个页面的代码的原因
  3. linux系统起来时间,linux 系统时间调整
  4. jquery 获取键值对中最大值_jQuery的AJAX发送数据键值对
  5. 今天成功的将一个对1,000,000条记录的查询从30'提升到1'以下,庆祝一下
  6. c++求矩阵的秩_利用Python矩阵求逆、特征值及特征向量
  7. SpringCloud实现集群和负载均衡
  8. MPUSH消息推送服务器搭建,MPUSH消息推送服務器搭建
  9. c语言全局变量global,C语言定义共享全局变量
  10. word复制某一页并插入到新页
  11. 超详细的APP数据指标体系分析
  12. 用Wireshark看见TLS握手过程
  13. 哈尔滨校区学员扫码绑定教练、签到、签退、评价说明
  14. 计算机网络:基础概念
  15. idea的卸载和安装
  16. USERKEY_PLAT_NOMATCH——高德地图经纬度转换API使用报错
  17. html5制作颜色的诗句,写颜色的诗句
  18. 第八课--H5内联 SVG
  19. 结合微软开放api,使用MSN,Hotmail等登陆Sharepoint网站
  20. AmazeUI 图片轮播模块FlexSlider笔记

热门文章

  1. 苹果微信更新不了最新版本_微信登录不了,微信提示版本过低,请升级最新版本的解决办法...
  2. 下列属于mysql流程控制的是什么_下面选项中,不属于MySQL中流程控制语句的有...
  3. 2021迅雷web实习生面试经验
  4. 好未来 Dolphin-儿童口语表达能力AI自动评测:顶尖AI算法技术与教育理念的有机结合 | 百万人学AI评选
  5. JAVA ik es_Elasticsearch入门和查询语法分析(ik中文分词)
  6. 佛说爱情二:前生500次的回眸才换得今生的一次擦肩而过
  7. 一副眼镜一千多贵吗_眼镜片的价格差距为什么那么大
  8. 阿里云部署视频点播:学习文档使用Java程序部署视频点播基础用法之入门
  9. python数据分析-numpy学习
  10. 联想小新笔记本,16G运行内存只能使用13.9G或14.9G的解决方案