ZigZag Sin
登 陆
上一篇:*代码-指数哥伦布熵编码的解码实现 下一篇:3-5 *代码-正式解析开始前的一些抽象

学会读文档中的描述子

乔红
2021-1-23 17:39 阅读 3579

引言

我们上一节实现了指数哥伦布编码的代码,现在,我们有了读取码流信息的能力。那么,我们现在就可以开始读取 SPS 和 PPS 了,SPS 和 PPS 的结构是什么样子的呢?这时候,我们得看 H.264 的标准文档了。

文档中的描述子

我们先来查看一下文档中对于 SPS 和 PPS 的描述:

Golomb

在标准文档中,我们可以看到,标准文档采用了这种似乎是表格,又似乎是伪代码的方式来描述码流的结构,我们不妨把它叫做语法表格。

我们可以看到三列:

  • 第一列,写的是语法元素和语法规则。
  • 第二列,写的是分类信息,暂时用不到,我们在介绍 Slice data partition A/B/C 的时候会再做介绍。
  • 第三列,写的是该行语法元素的描述信息,就是这个元素采用什么编码方式,占用多少空间,又被称作描述子。

在 SPS 和 PPS 的语法表格中,会出现以下几种描述子:

  • u(n): 无符号整数,n bit 长度
  • ue(v): 无符号指数哥伦布熵编码
  • se(v): 有符号指数哥伦布熵编码

这三种我们上一小节都实现过了,现在只需要按照语法表格中的描述,逐一把信息读出来就好了。

像上面截图中的一些语法元素,在码流中的布局就像下图:

stream

上一篇:*代码-指数哥伦布熵编码的解码实现 下一篇:3-5 *代码-正式解析开始前的一些抽象
给我买个键盘吧。。。求打赏。。。
欢迎加群,一起交流~~~