推广

H264系列–码流组成和分层结构

iseeyu3年前 (2024-02-21)推广126

66.png

码流功能的角度

从码流功能的角度可以分为两层:NAL层和VCL层

  • NAL网络提取层:负责以网络所要求的恰当的方式对数据进行打包和传送
  • VCL视频编码层:包括核心压缩引擎和块,宏块和片的语法级别定义,设计目标是尽可能地独立于网络进行高效的编码

码流解析的角度

可以理解为有一个一个的NALU单元组成.

68.png

一个NALU单元分成两部分: NAL头和RBSP(Raw ByteSequence Payload)原始字节序列载荷.

前面提到的一帧图像(I帧, P帧, B帧)就是一个NALU单元, NALU单元除了代表图像外还能包含其他类型的数据,如PPS和SPS, 详细的内容在下节列出来.

前面提到的VCL层, 或者说VCL数据,是指视频编码生成的压缩比特流片段,被称为SODB(String of Data Bits),
SODB是RBSP的原始帧, 即RBSP包含了SODB数据

NALU

一个NALU由 固定长度的Header和RBSP组成

1720840-8f2f0d6c98874fa8.jpg

HEADER

NAL Header的结构如下:

1720840-0db292febd810304.jpg

  • forbidden_zero_bit
    在网络传输中发生错误时,会被置为1,告诉接收方丢掉该单元;否则为0
  • nal_ref_idc
    用于表示当前NALU的重要性,值越大,越重要.
    解码器在解码处理不过来的时候,可以丢掉重要性为0的NALU.
  • nal_unit_type
    表示NALU数据的类型,有以下几种:

    72.png

其中比较注意的应该是以下几个:

  • 1-4:I/P/B帧,如果nal_ref_idc 为0 则表示I帧,不为0则为P/B帧
  • 5:IDR帧,I帧的一种,告诉解码器,之前依赖的解码参数集合(接下来要出现的SPS\PPS等)可以被刷新了。
  • 6:SEI,英文全称Supplemental Enhancement Information,翻译为“补充增强信息”,提供了向视频码流中加入额外信息的方法。
  • 7:SPS,全称Sequence Paramater Set,翻译为“序列参数集”。SPS中保存了一组编码视频序列(Coded Video Sequence)的全局参数。因此该类型保存的是和编码序列相关的参数。
  • 8: PPS,全称Picture Paramater Set,翻译为“图像参数集”。该类型保存了整体图像相关的参数。
  • 9:AU分隔符,AU全称Access Unit,它是一个或者多个NALU的集合,代表了一个完整的帧。

其中SPS,PPS 需要在I帧前出现,不然解码器没法解码.而SPS,PPS出现的频率也跟不同应用场景有关,对于一个本地h264流,可能只要在第一个I帧前面出现一次就可以,但对于直播流,每个I帧前面都应该插入sps或pps,因为直播时客户端进入的时间是不确定的.

RBSP

RBSP的结构如下:

1720840-7a3721b879284848.jpg

这部分还没研究,似乎目前解析时ffmpeg都给实现了.

每个NALU前有一个起始码 0x00 00 01(或者0x00 00 00 01), 作为NALU的分割符

下面是一个H264码流:

SouthEast.jpg

分析其中比较有代表性的3帧:

  • 00 00 00 01 67
    00 00 00 01是一个NALU 开始,67 是Header, 二进制为0110 0111, nal_unit_type 为00111, 即7为SPS帧
  • 00 00 00 01 68
    68 二进制为0110 1000, nal_unit_type 为00111, 即8为SPS帧
  • 00 00 00 01 65
    65 二进制为0110 0101,nal_unit_type 为00101, 即5为IDR帧

H264 更详细的分层结构

71.png

关于多slice这块目前还没弄清楚,后面弄清楚了再修改.

参考:
https://www.jianshu.com/p/82cc851df834

扫描二维码推送至手机访问。

版权声明:本文由西安泽虎代运营发布,如需转载请注明出处。

转载请注明出处https://www.0291.com.cn/post/56951.html

相关文章

西安企业做百度推广,一个月花三千和花三万到底差在哪?

4|最近跟几个西安的老板聊天,发现一个挺有意思的现象:同样做百度推广,有人一个月花三千块,询盘不断;有人一个月砸三万,水花都没见着。问他们区别在哪,大多数人说不清楚,只知道'钱花了,没效果'。 5| 6|百度推广这东西,说复杂也复杂,说简单也简单。核心就一件事:让你的潜在客户搜某个词的时候,你的信息...

我想当策划,大学应该选什么专业?

我想当策划,大学应该选什么专业?

学,广告,传播,公关,这些专业其实都可以。另外也可以学像汉语言文学,以及一些跟文学相关的一些专业,会对你找工作有帮助。但是,你想从事这个这份职业,除了专业的学习之外,更多的是,你要在上学的时候积极参与一些更营销策划相关的社会实践。比如说你可以做一些兼职,比如说帮别人去写稿,...

服装市场营销策略分析,“定位不慎满盘皆输”

服装市场营销策略分析,“定位不慎满盘皆输”

不同的区域需要不同的策略,而不同的营销策略需要不同的销售思路来配合。因此,在研究女装产品销售思路之前,最好先对于市场与营销策略做一次深入地了解。1.市场区域化(market segmentation):目标营销的第一步,是将整个市场拆分成若干个同性质的小市场。2.目标市场的...

晚间悦读丨你的思维方式,决定你的人生高度!

晚间悦读丨你的思维方式,决定你的人生高度!

越长大,越发现,能够决定你人生高度的,往往是你的认知层次。 你的认知在哪个层级,你的人生就处在什么状态。你认知的高度,决定了你人生的高度。 那如何才能升级方式、提升认知能力呢?可以从这三个方面做出改变。 NO. 1 改变态度 有人...

编写项目营销策划方案六大要点

编写项目营销策划方案六大要点

现在商业发展非常迅速,的需求非常的大,但是要做好营销策划是有一定难度的,我把自己做营销策划的一些体会在这里分享给朋友们。营销策划方案六大要点我们先说项目营销策划方案这个话题。大部分的营销策划人都是在企业里工作,大部分项目之初都是来源于一个想法,创始人、老板或者创始团队的一个...

【商场营销策划】如何进行商场营销策划?

【商场营销策划】如何进行商场营销策划?

商场是策划者们关注的永恒话题,那么究竟该如何作好商场营销策划呢?掌握以下这几点营销策略设计原则,至关重要!1.义利兼顾的原则。商场在获取利润的同时要充分考虑到消费者的合法利益和商场的长远利益。在作商场活动营销策略方案的时候应该将这一点作为首要的原则。对商场有利而对顾客不利的...

现在,非常期待与您的又一次邂逅

我们努力让每一部企业宣传片和抖音短视频成为商业大片