作品 ID Header,那是什么?

Opus ID Header, what is that?

查看 OggOpus 的文档,我不明白这个 table 是什么意思:

 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|       'O'     |      'p'      |     'u'       |     's'       |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|       'H'     |       'e'     |     'a'       |     'd'       |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|  version = 1  | channel count |           pre-skip            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                original input sample rate in Hz               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|    output gain Q7.8 in dB     |  channel map  |               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+               :
|                                                               |
:          optional channel mapping table...                    :
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

我该如何从中获得 header?

这是RFC中常见的一种数据格式的图形表示,例如RFC791第3.1节中的IPv4 header就是用同一种图片描述的。

顶部的数字是 0 到 31,每个数字代表一位。每行代表 32 位。

图表中的所有框都是 8 位宽的倍数,这使它成为一种很好的 byte-oriented 格式。第一个框包含 'O',所以 header 的第一个字节是 'O'(大概是 ASCII,所以它的十六进制值为 4F)。下一个字节是 'p'(十六进制 70),依此类推直到前 8 个字节。之后,下一个字节是版本字节。本文档定义的版本为 1,因此该字节的值为 1。

版本之后,下一个字节是通道数,然后有一个值叫做"pre-skip",它在水平space中占了16位,所以它是一个16位的字段。继续从左到右阅读每一行,从上到下逐行阅读,以获取其余字段。最后一个字段,"optional channel mapping table"被画成一个带椭圆的大区域,表示它的大小不固定。

图片中没有任何信息是您无法从下面的文字中获得的。