【发布时间】:2018-06-14 10:00:28
【问题描述】:
JPEG 标准定义了如下所示的解码过程。我对一些部分感到困惑。
-
CODE > MAXCODE(I),如果为真,则进入循环并将左移 (
可能我没看懂图
-
+ NEXTBIT是什么意思?例如,如果 CODE 位是 10101,NEXTBIT 是 00000001,那么结果将是 101011(如字符串附加),对吗? -
HUFFVAL 列表是否与 DHT 标记中定义的相同(Vi,j 值)。我需要建立额外的查找表或其他东西吗?因为似乎程序直接使用了该列表
感谢您的澄清
编辑:
我的解码代码 (C):
uint8_t
jpg_decode(ImScan * __restrict scan,
ImHuffTbl * __restrict huff) {
int32_t i, j, code;
i = 1;
code = jpg_nextbit(scan);
/* TODO: infinite loop ? */
while (code > huff->maxcode[i]) {
i++;
code = (code << 1) | jpg_nextbit(scan);
}
j = huff->valptr[i];
j = code + huff->delta[i]; /* delta = j - mincode[i] */
return huff->huffval[j];
}
【问题讨论】:
标签: jpeg huffman-code