无法理解 flac 帧标题格式



我正在做一种flac解析器,我需要解析每个帧的头部。有一个字段以flac格式描述(https://xiph.org/flac/format.html#frame_header)

if(可变块大小(<8-56>:"UTF-8"编码样本号(解码数为36位([4]否则<8-48>:"UTF-8"编码帧数字(解码数字为31位([4]

和[4]说:

用于样本/帧编号的"UTF-8"编码相同用于存储压缩UCS-2的可变长度代码,扩展到处理较大的输入。

我完全不明白如果这个字段是8-56或8-48位,我该如何知道它的大小。为什么解码的数字是36或31位?此外,当我在使用UTF-8编码的十六进制编辑器中打开flac文件时,该字段中没有数字。如有任何帮助,我将不胜感激。

UTF-8编码的样本表示第一个字节(5。帧头的字节(包含有效位,这些有效位将告诉您以下多少字节是帧/样本号的一部分。

您可以在此处检查有效位的格式:https://en.wikipedia.org/wiki/UTF-8

如果数字是用48位编码的,它看起来是这样的:111111 0x 10xxxxxx 10xxxxxx 10 xxxxxx 10 XXXXXX 10 xxxxxx

它有31位('x'(,您可以将其提取并放入更易于管理的类型中,如UInt32。

最新更新