1、这里主要使用笔者使用佳能 Canon 5D Mark III 实拍的一张原图进行分析,其他 型号的分析结果步骤类同。下面笔者将对分析报告的每个细节都一一讲解,如果只需要看原图检测结果的朋友可以直接跳到第 9 和第 10 步。
2、首先我们可以发现一些蓝色的文字,蓝色的行表示这个 JPG 文件中JPEG段。每个 JPG 图片文件都是由不同的 JPEG 段构成的,不同的 JPEG 段有不同的功能,多打开几张 JPG 图就不难发现,每张 JPG 图都是由 SOI (0xFFD8) 标记开始的,这个标记全称是 Start of Image,即图像开始标识符。

4、APP1(Exif) 之后的下一个 JPEG 段,往往也是一个 APP1 段(老式型号原图可能没有这个段)。但是这个 APP1 段标识符竟然是 Adobe 的网址。什么?原图竟然有 Adobe 的痕迹?难道这个图被 PS 过了?别急,这个 APP1 段是储存XMP 数据的,XMP 是一种新的基于 XML 的元数据标准,目前被越来越多的厂商接受,并且大有取代 EXIF 之势,而 XMP 元数据标准正是 Adobe 公司制定的。所以事实上这个类似网址的东西准确来说是叫命名空间(namespace),它是一个 URI 而不是 URL,是用来标记 XML 数据的标签的使用规范的。所以原图中有 XMP 数据完全不是什么值得奇怪的事情。

6、下一个段一般是 SOF0(0xFFC0),即 Start of Frame #0,JPEG 图像帧的开始。这里主要定义的是 JPEG 图的 DCT 离散余弦变换类型、实际尺寸和位深度。聪明的你可能会问,有 SOF0 是不是也有 SOF1、SOF2 等等呢?对的,SOF0 是最常见的 DCT 变换类型,叫基线DCT(Baseline DCT),95% 以上的 JPEG 图都是这种。另一种也可能碰到的是 SOF2,也叫渐进式 DCT(Progressice DCT),其他的 SOF 段基本上就极少碰见了。有兴趣的朋友也可以去搜索一下 JPEG 图像的压缩过程,即可了解不同 DCT 的区别。


9、最后最好玩的就是报告结尾的这个表和原图检测的级别了。可能很多人有疑问,这个表是什么呢?这个表事实上是这个图的特征和JPEGsnoop 的原图数据库的匹配结果列表,简单来说,就是 JPEGsnoop 认不认识这个型号的原图。这个表的匹配结果是基于以上所述的 DQT 和 EXIF 特征的,如果 JPEGsnoop 能够匹配到数据库中的相机原图特征,那么就会用绿色来高亮显示那一行,即说明这个图是JPEGsnoop 已知的原图。当然,如果绿色高亮的是 Photoshop 或其他 软件的特征,则说明这个图被那个软件修改过,自然可以确定不是原图。


