视频编解码

H264

1.1概述:H264是比较老的编码格式,优点是兼容性好。下面的介绍以改图为参考

1.2编码顺序:编码和解码顺序是一样的,但跟显示顺序不一样,编解码是先编码I帧,再编码P帧,最后编码B帧。

1. 显示顺序(播放顺序)

就是我们肉眼看到的画面顺序,完全对应图中「原始图片」的从左到右:

  1. 第 1 帧(显示序号 1):绿底 + 蓝色三角形(无椭圆、无矩形)
  2. 第 2 帧(显示序号 2):绿底 + 蓝三角 + 橙色椭圆 + 粉色矩形
  3. 第 3 帧(显示序号 3):绿底 + 蓝三角 + 粉色矩形(椭圆消失)

解编码顺序为:

  1. 第 1 个编码 :显示序号 1 → I 帧(基准关键帧,无依赖,先编码)
  2. 第 2 个编码 :显示序号 3 → P 帧(B 帧的后向参考帧,必须先编完,B 帧才能参考)
  3. 第 3 个编码 :显示序号 2 → B 帧(双向参考 I 帧和 P 帧,最后编码)

专门名词介绍:

I帧I帧不需要参考其它帧,只需要在空间上进行压缩

P帧: 前向预测编码帧(predictive-frame),P帧表示的是这一帧跟之前的一个I帧(或P帧)的差别**,解码时需要用之前缓存的画面叠加上本帧定义的差别,生成最终画面**。P帧需要参考其前面的一个I帧或者P帧来解码成一张完整的视频画面。

B帧:双向预测内插编码帧(bi-directional interpolated prediction frame),以前面的I或P帧和后面的P帧为参考帧。

GOP:(Group Of Picture,图像组 ):指两个I帧之间的距离,Reference(参考周期)指两个P帧之间的距离。

IDR 图像立即刷新图像 ):在H264中图像以序列 为单位进行组织,一个序列是一段图像编码后的数据流。 一个序列的第一个图像叫做 IDR 图像立即刷新图像),IDR 图像都是 I 帧图像。

DTS(Decoding Time Stamp,解码时间戳:这个时间戳的意义在于告诉播放器该在什么时候解码这一帧的数据。

PTS(Presentation Time Stamp,**显示时间戳:**这个时间戳用来告诉播放器该在什么时候显示这一帧的数据。

模块介绍:

一、PTSDTS

P帧需要参考前面的I帧或P帧才可以生成一张完整的图片,而B帧则需要参考前面I帧或P帧及其后面的一个P帧才可以生成一张完整的图片。这样就带来了一个问题:在视频流中,先到来的 B 帧无法立即解码,需要等待它依赖的后面的 I、P 帧先解码完成,这样一来播放时间与解码时间不一致了,顺序打乱了。

虽然 DTS、PTS 是用于指导播放端的行为,但它们是在编码的时候由编码器生成的

相关推荐
卡梅德生物科技小能手10 分钟前
卡梅德生物科技深度解析LAG3(淋巴细胞活化基因3)
网络·人工智能·经验分享
暗夜猎手-大魔王11 分钟前
转载--Hermes Agent 09 | 技能安全:静态扫描 + 信任级别策略如何防止“技能投毒“
网络·数据库·安全
Multipath71212 分钟前
多卡多链路聚合设备为无人机的超远距离传输提供网络保障
网络·无人机
Cloud_Shy61814 分钟前
解读《Effective Python 3rd Edition》:从练气到老魔(第二章 Item 13 - 16)
c语言·开发语言·网络·笔记·python·编辑器
Johnstons21 分钟前
如何精确模拟网络丢包进行测试?实测指南
开发语言·网络·php·网络测试·网络损伤·弱网模拟
rsuhbsrjms44 分钟前
可视采耳仪器多少钱一台?可视耳勺哪个牌子好?口碑好的可视耳勺
网络·人工智能·算法
武子康1 小时前
调查研究-156 Vercel 全栈应用 前端零配置极速上线:Serverless + 边缘网络 + CI/CD 全栈实战
前端·网络·ci/cd·ai·云原生·serverless·vecel
青草地溪水旁3 小时前
CAN通道的“一对一”与“选择性”:物理线束、CanSM通道与网络报文实践解析
网络·autosar cp
拾光Ծ3 小时前
【Linux网络】计算机网络入门:网络产生与协议
linux·网络·网络协议·tcp/ip·计算机网络
稳联技术老娜9 小时前
DeviceNet主站怎么连接西门子PLC,Profinet网关配置手册(那智机器人)
服务器·网络·数据库