如何为JEPG Huffman Values构建查找表

时间:2018-06-11 13:03:31

标签: jpeg huffman-code

我想我曾几次阅读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标记?

从我理解的步骤中我必须遵循的是:

  1. 解析DHT标记以获取HUFFVAL表/列表
  2. 使用???
  3. 构建HUFFCODE表/列表
  4. 使用HUFFCODE表构建解码器表(MAXCODE,MINCODE,VALPTR)
  5. 在扫描标记中,使用DECODE和EXTEND通过使用MAXCODE,MINCODE,VALPTR表获取霍夫曼值
  6. 我不确定哪些数据作为BITS(i)传递给HUFFCODE。

    感谢您澄清步骤

    PS:我不想构建霍夫曼树,而是想构建查找表。

0 个答案:

没有答案