H.264 NALUint 解析

接触过H.264视频编解码的朋友应该都知道NAL 单元这个概念。NAL的全称是 (Network Abstraction Layer) 网络抽象层。而这个NAL的主要作用是方便视频编码后数据的存储和网络传输而设计的一个额外的层。也就是说NAL是对编码数据的一种封装。说到这我们就有必要先来聊一下H.264的编码输出数据的定义了。

H.264 将最后呈现给我们的编码数据分为两层:
VCL: (Video Coding Layer) 视频编码层。即视频图像编码后输出的裸数据。不包含其他额外信息的纯视频图像编码后数据。
NAL: (Network Abstraction Layer) 网络抽象层。即对编码输出的VCL数据进行一次封装得到NAL Uint。

好,那么我们了解了这两个概念之后,我们就知道了。我们看到的H.264 码流其实就是一个各NAL Uint连接起来的序列。那我们就先来看一看 NAL Uint sequence的结构吧

NALUintSequence

大家一看可能会觉得奇怪。刚刚说的是VCL 和NAL 现在呢,这个图里面就完全没有 VCL呀。结果出来了一个 RBSP。那么RBSP是什么呢,它的全称是 (Raw Byte Sequence Payload)原始字节序列负载。
RBSP其实就是对视频编码数据进行对齐处理后的数据了。即在编码器输出数据后面添加一个 bit 的 ‘1’或者几个bit 的‘0’进而达到字节对齐的结果。

回过来说NAL Uint,那NAL Uint就是 NAL头 + BRSP 咯。
那么我们就来看看NAL Uint吧。NAL Uint的语法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值