gpt4 book ai didi

c - 解码 JPEG 霍夫曼 block (表格)

转载 作者:太空狗 更新时间:2023-10-29 16:37:58 24 4
gpt4 key购买 nike

以下 block 由霍夫曼 block 标记嵌套

-HUFF---------------------------------------------------------------------0084-
10 0 1 2 4 3 4 6 5 6 8 a 9 4 2 3
0 1 2 11 0 3 4 21 5 12 31 6 41 51 61 13
22 71 81 91 a1 14 32 b1 d1 f0 15 23 35 42 b2 c1
7 16 24 33 52 72 73 e1 25 34 43 53 62 74 82 94
a2 f1 26 44 54 63 64 92 93 c2 d2 55 56 84 b3 45
83 46 a3 e2
-------------------------------------------------------------------------------

0084是表的整数长度,不包含在此处的 block 中

根据 JPEG 标准,第一个地址显然使它成为目标 0 (0x10) 的 AC 表

很明显,从那里开始它就是一张霍夫曼表。

那么,它是如何解码的呢?

最佳答案

0x10 之后的 16 个字节告诉您每个长度有多少个代码。在您的示例中,有 0 个长度为 1 位的代码、1 个长度为 2 位的代码、2 个长度为 3 位的代码、4 个长度为 4 位的代码、3 个长度为 5 位的代码,等等。

然后依次是这些代码编码的值。再次从你的例子:

Code length | Number | Symbol(s)
------------+--------+----------
1 bit | 0 |
2 bits | 1 | 0x01
3 bits | 2 | 0x02 0x11
4 bits | 4 | 0x00 0x03 0x04 0x21
5 bits | 3 | 0x05 0x12 0x31
... etc

然后您从上到下构建一个二叉树,按顺序分配符号。在此示例中,您将获得:

Symbol | Code 
-------+------
0x01 | 00
0x02 | 010
0x11 | 011
0x00 | 1000
0x03 | 1001
0x04 | 1010
0x21 | 1011
...etc

关于c - 解码 JPEG 霍夫曼 block (表格),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1563883/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com