什么是 JPEG 标记 0xb9?

What is JPEG marker 0xb9?

我是 JPEG 新手,我正在尝试解码一个(可能已损坏的)JPEG(或者更确切地说,JFIF)文件。

我的图像查看器程序抱怨非法 0xb9 标记。

该文件没有 SOF(帧开始)标记,而是有这个 APP1 片段

ff e1 00 0b 50 49 43 00 02 28 3c 01 00

后跟这个带有 0xb9 标记的片段:

ff b9 00 11 08 06 4c 04 d3 03 01 22 00 02 11 01 03 11 01

我在看什么?

编辑

有人问我文件的来源。这是故事:

大约 20 年前,我买了一本杂志的 CD-ROM 合集。然而,这些杂志只能在旧的 Windows 电脑上阅读,所以我正在尝试寻找另一种方式来阅读它们 - 最好是在我的 Linux 电脑上工作的方式。据我所知,杂志页面存储为许多简单地连接在一起的 JFIF 文件。

所以首先,我提取了一个 JFIF 文件,现在我正试图找到一种查看它的方法。

编辑 2

我被要求分享一个图片文件。我不确定这样做是否侵犯了版权,所以我会在几天后再次删除该文件。无论如何,其中一个有问题的图片文件可以从这里下载:

https://www.dropbox.com/s/9da72gdri8c9xwp/f1000.jpg

我不知道该文件包含什么,只是它可能是 MAD 杂志的一页。

ff b9 段看起来非常像 SOF0 段,将其更改为 ff c0 (SOF0) 可使图片可见,但仅作为随机像素的集合。

上面提到的 APP1 段包含字符串 PIC,据我所知,它不属于任何 APP1 段类型。

编辑 3

既然这个问题已经得到解答,我将从 Dropbox 中删除该文件以避免任何版权问题。感谢所有为此做出贡献的人。

根据 ITU T.86 Amendment 1, the APP1 segment with identifier "PIC" contains "Accusoft Pegasus 自定义字段。”这表明该文件可能是使用 Accusoft 工具创建的,并且他们也可能能够对其进行解码。

(确实,在 Accusoft 的 "Apollo" 图片查看器的 your comment above you say that you managed to successfully open the file using the demo version 中。)

至于 FFB9 段标记,我仍然不确定它是什么意思。我确实设法找到了似乎识别它的独立 JPEG 组的 some code in the JPEG XT reference implementation (called "libjpeg"; not to be confused with the widely used library of the same name,并且包含一条评论说它表示 "residual scan, ac coded"。然而,无论 是什么意思,我都不是 100% 确定。

Apparently it has something to do with supporting images with more than 8 bits of dynamic range per pixel, with the "residual scan" storing additional high-precision pixel data which can be combined with the basic 8 bit JPEG image data to reconstruct the full HDR image. But if so, it seems strange to have a file with only such a residual scan marker without any normal SOI marker. Given that, according to jakub_d,JPEG XT 库实际上无法解析您的文件,可能是它以某种非标准方式使用了标记。