《趣谈网络协议》学习笔记 day06

2023-01-20  本文已影响0人  陈卧虫

流媒体协议

什么是视频

视频就是连续快速播放的一串图片,所以视频由一张张的图片构成。每一张图片称为一帧。每秒播放的图片数就称为帧率。

每一张图片由一个个的像素点组成,而每一个像素点RGB表示(8位*3=24位)

编码

存储所有的信息太大了,需要丢弃一部分不重要的数据,这个过程就是编码,实际是一个压缩过程。

压缩过程的特点:

  1. 空间冗余:一张图片中,相邻像素相似,可以间隔保存
  2. 时间冗余:时间上,连续相邻的几张图片相似,可以间隔抽样保存
  3. 视觉冗余:不重要的细节,可以丢失


    image.png

编码的两大流派:

  1. itu的vceg,侧重编码传输
  2. iso的mpeg,侧重存储,后来也重视传输
    后来合并成了h.264/mpeg-4 avc

直播的流程

image.png

编码的流程

图片帧的分类:

  1. I帧:关键帧,完整的图片,不依赖其它帧就可以解码
  2. P帧:向前预测帧,表示和前一个关键帧的差别,需要和一个帧叠加才能解码
  3. B帧:双向预测帧:与前后两帧的差别,要去的前后两帧的画面才可解码

帧的构成:


image.png

一个帧由多个片构成,一个片由多个宏块构成,一个宏块由多个子块构成。帧-》片-》宏-》子块

压缩成的二进制流格式:
由一个个的网络提取层单元(NALU, network abstraction layer unit)构成,目的是为了便于传输。


image.png

NALU的构成:

  1. 起始标识:标识间隔
  2. header:类型信息
  3. pyload:承载的数据

一个Nalu中保存的是一片数据。
编码的整个过程:一个视频拆分为一个个帧,每一个帧拆成一系列分片,每一个分片放在一个NALU中,每个NALU之间通过起始标识分隔,从而形成长长的NALU序列。

上一篇下一篇

猜你喜欢

热点阅读