【问题标题】:Dealing with Padding / Stuff Bits Entropy Encoded JPEG处理 Padding / Stuff Bits Entropy Encoded JPEG
【发布时间】:2015-01-14 17:57:23
【问题描述】:

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' 字节是 塞进代码串。如果一个 X'00' 字节后检测到 X’FF’字节,解码器必须丢弃它。如果字节不为零,则 标记已被检测到,并应解释为 需要完成扫描的解码。

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

【问题讨论】:

    标签: jpeg huffman-code


    【解决方案1】:

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

    1. 重启标记;或
    2. FF00 代表 FF。

    如果您正在解码流,您将从重新启动间隔中知道何时需要重新启动标记。当您在解码中找到重新开始标记的位置时,您会丢弃当前字节中的剩余位。

    【讨论】:

    • 如果我在点击重启标记之前点击 EOI (0xFF, 0xD9) 会怎样?
    • 如果您在没有解码所有 MCU 的情况下进入 EOI 市场,则数据有问题。
    • This indicates DRI 的使用是可选的。
    • 是的。如果没有 at DRI 标记,您唯一应该跳过位到字节开头的时间是在扫描结束时。
    猜你喜欢
    • 2011-05-30
    • 1970-01-01
    • 2011-09-06
    • 1970-01-01
    • 1970-01-01
    • 2014-11-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多