JPEG标记0xb9是什么?

oz1*_*1cz 9 jpeg

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

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

该文件没有SOF(帧开始)标记,而是具有此APP1段

ff e1 00 0b 50 49 43 00 02 28 3c 01 00
Run Code Online (Sandbox Code Playgroud)

随后是带有0xb9标记的该段:

ff b9 00 11 08 06 4c 04 d3 03 01 22 00 02 11 01 03 11 01
Run Code Online (Sandbox Code Playgroud)

我在这里看什么

编辑

我被问到文件的来源。这是故事:

大约20年前,我通过CD-ROM购买了一些杂志。但是,只能在旧的Windows计算机上阅读这些杂志,因此我正在尝试寻找另一种阅读方法-最好是在我的Linux计算机上可以使用的方法。据我所知,杂志页面存储为许多JFIF文件,这些文件只是串联在一起。

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

编辑2

我被要求分享一个图片文件。我不确定是否要侵犯版权,因此几天后我将再次删除该文件。无论如何,可以从此处下载有问题的图片文件之一:

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

我不知道文件包含什么,除了它可能是来自MAD Magazine的页面。

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

上面提到的APP1段包含字符串PIC,它不是我知道的任何APP1段类型的一部分。

编辑3

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

Ilm*_*nen 4

根据ITU T.86 修正案 1,标识符为“PIC”的 APP1 段包含“ Accusoft Pegasus自定义字段”。这表明该文件可能是使用 Accusoft 工具创建的,并且他们也可能能够对其进行解码。

(事实上​​,在上面的评论中,您说您成功地使用 Accusoft 的“Apollo”图片查看器的演示版本成功打开了该文件。)

至于FFB9段标记,我仍然不确定它的含义。我确实设法在JPEG XT 参考实现中找到了一些代码(称为“libjpeg”;不要与独立 JPEG Group广泛使用的同名库混淆),这些代码似乎可以识别它,并包含一条注释:它表示“剩余扫描,ac 编码”。然而,无论这意味着什么,我都不能 100% 确定。

显然,它与支持每像素超过 8 位动态范围的图像有关,“剩余扫描”存储额外的高精度像素数据,这些数据可以与基本的 8 位 JPEG 图像数据相结合以重建完整的 HDR图像。但如果是这样的话,一个只有这样的残留扫描标记而没有任何正常 SOI 标记的文件似乎很奇怪。鉴于根据 jakub_d,JPEG XT 库实际上无法解析您的文件,可能是它以某种非标准方式使用标记。