【问题标题】:How can I parse a progressive JPG如何解析渐进式 JPG
【发布时间】:2017-02-12 11:41:00
【问题描述】:

我正在编写一个需要解析/反解析 jpeg 的“无尘室”程序。我找到了解析/取消解析基线 jpeg 所需的所有信息,但找不到解析/取消解析渐进式 jpeg 所需的信息。

我需要能够将压缩数据转换为宏块并返回,因此大多数可用的框架都太高级了。我也想了解发生了什么,因此采用了“洁净室”方法。

有人可以帮帮我吗? SOF1 标头的规范将很有用,扫描段中压缩数据的布局也是如此。

提前致谢。

【问题讨论】:

  • 哎呀,我好像说错了。我需要了解 SOF2 标头,而不是 SOF1 标头。对不起。
  • 我有一个 SOF2 标头的示例 - 它有 17 个字节的数据,它们是:[8, 3, -128, 6, 64, 3, 1, 34, 0, 2, 17, 1、3、17、1]。
  • 类型:194 数据大小:17 数据:[8, 3, -128, 6, 64, 3, 1, 34, 0, 2, 17, 1, 3, 17, 1] 这个给出精度:8 高度:= 896 宽度:= 1600 3 个组件 1, 34, 0 id1, hSample 2 vsample 2 2, 17, 1 id2, hSample 1 vsample 1 3, 17, 1 id3, hSample 1 vsample 1
  • 上面的数据给出了精度:8 高度:= 896 宽度:= 1600 3 个分量 1, 34, 0 id1, hSample 2 vsample 2 2, 17, 1 id2, hSample 1 vsample 1 3, 17 , 1 id3, hSample 1 vsample 1
  • 所有帧类型的标头结构都相同。

标签: parsing jpeg progressive


【解决方案1】:

如果你想解决这个问题,我会得到这本书:

https://www.amazon.com/Compressed-Image-File-Formats-JPEG/dp/0201604434/ref=sr_1_5?ie=UTF8&qid=1486949641&sr=8-5&keywords=jpeg

它以易于理解的术语解释了这一切。作者有源代码在

http://colosseumbuilders.com/sourcecode/imagelib403.zip

旨在易于理解。

SOF1 标头与所有其他 SOF 标头相同。您需要一份 JPEG 标准的副本(尽管它很迟钝)。上面的其他来源将帮助您度过难关。

【讨论】:

  • 这将是对原始问题的可接受评论。然而,这不是一个答案。
  • 它确实促使我使用字节检查器进行调查,并发现断言是正确的,并且我实际上可以继续部分无知。所以谢谢你的推动
  • 您遇到的问题是,为了解析 JPEG 流,您在很大程度上需要对其进行解码。您可以检查块。逐行扫描具有格式和重新启动标记作为顺序扫描,但获取实际数据很困难。
  • 感谢您的确认 - 我已经开始怀疑是这种情况。我分析了一个 SOF2 标头,它 确实 匹配 SOF0 标头的布局。我现在有一个问题,我只能找到两个霍夫曼表,而我会计算四个(AC/DC 用于亮度/色度。至于块的顺序 - 奇怪的是它对我的程序无关紧要。如果唯一的区别是如果它们以错综复杂的顺序出现,那么一旦我找到丢失的霍夫曼表,我就可以开始了。
  • 霍夫曼表的数量在其他块中指定。必须有4张桌子。通常至少有 2 个。
猜你喜欢
  • 2011-01-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-09-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多