处理填充/填充位熵编码JPEG

时间:2015-01-14 17:57:23

标签: jpeg huffman-code

decoding entropy encoded DC values in JPEG(或entropy encoded prediction differences in lossless JPEG)时,如何区分填充在标记之前填充字节的1位和霍夫曼编码值?

例如,如果我看到:

0xAF 0xFF 0xD9

我已经消耗了[0xA]中的位,如何判断下一个0xF是否被填充或应该被解码?

这是来自JPEG规范:

  

F.1.2.3字节填充

     

为标记代码提供代码空间   它可以位于压缩的图像数据中而无需解码,   使用字节填充。

     

每当在正常编码过程中,   字节值X'FF'在代码字符串中创建,X'00'字节是   填入代码字符串。如果在a之后检测到X'00'字节   X'FF'字节,解码器必须丢弃它。如果字节不为零,则a   已经检测到标记,并且应该在一定程度上进行解释   需要完成扫描的解码。

     

标记的字节对齐   通过用1位填充不完整的字节来实现。如果填充   1位创建一个X'FF'值,在添加之前填充零字节   标记

1 个答案:

答案 0 :(得分:1)

压缩数据流中只有两种可能的FF值。

  1. 重启标记;或
  2. FF00代表FF。
  3. 如果要解码流,您将从重启间隔知道何时需要重启标记。当您在解码中找到重新开始标记的位置时,您将丢弃当前字节中的其余位。