我想我曾几次阅读itu-t81.pdf文件。但我无法弄清楚如何从比特流中获取块数据(DC和AC值)。
问题是我无法理解如何从比特流中获取霍夫曼值。在附件F 部分 F.2.2.3 DECODE程序描述了DECODE,EXTEND和解码器表。
问题1:我认为我必须在解析DHT标记之后(或同时)构建解码器表,对吗?
问题2:图图F.15 - 解码器表生成使用 HUFFCODE ,但在DHT标记部分,有HUFFVAL列表(Li,Vi,j)。 B.2.4.2霍夫曼表格规范语法 说:
Vi,j:与每个霍夫曼代码相关联的值 - 为每个i指定与长度为i的每个霍夫曼代码相关联的值。每个值的含义由霍夫曼编码模型确定。 Vi,j是列表HUFFVAL
的元素
所以我没有HUFFCODE列表我只有来自DHT标记的HUFFVAL列表。如何获取或构建HUFFCODE列表?
附件C 还定义了如何构建huffman表,还有一节介绍如何构建HUFFCODE列表/表(图C.2 - 霍夫曼代码表的生成)我想我必须使用它来构建HUFFCODE表。但它也使用BITS(i)。这个价值是多少? BITS(i)是否来自DHT标记?
从我理解的步骤中我必须遵循的是:
我不确定哪些数据作为BITS(i)传递给HUFFCODE。
感谢您澄清步骤
PS:我不想构建霍夫曼树,而是想构建查找表。