3D图像文件主要以.MPO为扩展名。该类型文件主要有多个JPEG片段组成。要对MPO类型文件进行了解。首先了解一下JPEG文件的格式。

一、JPEG文件格式介绍

JPEG文件使用的数据存储方式有多种。最常用的格式称为JPEG文件交换格式(JPEG File Interchange FormatJFIF)。而JPEG文件大体上可以分成两个部分:标记码(Tag)和压缩数据。

标记码由两个字节构成,其前一个字节是固定值0xFF,后一个字节则根据不同意义有不同数值。在每个标记码之前还可以添加数目不限的无意义的0xFF填充,也就说连续的多个0xFF可以被理解为一个0xFF,并表示一个标记码的开始。而在一个完整的两字节的标记码后,就是该标记码对应的压缩数据流,记录了关于文件的诸种信息。

常用的标记有SOIAPP0DQTSOF0DHTDRISOSEOI

注意,SOI等都是标记的名称。在文件中,标记码是以标记代码形式出现。例如SOI的标记代码为0xFFD8,即在JPEG文件中的如果出现数据0xFFD8,则表示此处为一个SOI标记。

     SOIStart of Image,图像开始

u 标记代码                               2字节    固定值0xFFD8

   APP0Application,应用程序保留标记0

u 标记代码                               2字节    固定值0xFFE0

u 包含9个具体字段:
  数据长度                       2字节    ~⑨9个字段的总长度
                                                          即不包括标记代码,但包括本字段
  标识符                           5字节   固定值0x4A46494600,即字符串“JFIF0”
  版本号                           2字节   一般是0x0102,表示JFIF的版本号1.2
                                                          可能会有其他数值代表其他版本
 XY的密度单位         1字节    只有三个值可选
                                                          0:无单位;1:点数/英寸;2:点数/厘米
 X方向像素密度             2字节    取值范围未知
 Y方向像素密度             2字节    取值范围未知  
   缩略图水平像素数目      1字节    取值范围未知
  缩略图垂直像素数目      1字节    取值范围未知
  缩略图RGB位图            长度可能是3的倍数         缩略图RGB位图数据

本标记段可以包含图像的一个微缩版本,存为24位的RGB像素。如果没有微缩图像(这种情况更常见),则字段⑦缩略图水平像素数目和字段⑧缩略图垂直像素数目的值均为0

    APPnApplication,应用程序保留标记n,其中n=115(任选)

u 标记代码                               2字节    固定值0xFFE1~0xFFF

u 包含2个具体字段:
  数据长度                      2字节    ~②2个字段的总长度
                                                          即不包括标记代码,但包括本字段
  详细信息          数据长度-2字节  内容不定
                                                   

例如,Adobe Photoshop生成的JPEG图像中就用了APP1APP13两个标记段分别存储了一幅图像的副本。

      DQTDefine Quantization Table,定义量化表

u 标记代码                        2字节          固定值0xFFDB

u 包含9个具体字段:
  数据长度                2字节          字段①和多个字段②的总长度
                                                          即不包括标记代码,但包括本字段
  量化表      数据长度-2字节

a)        精度及量化表ID  1字节          4位:精度,只有两个可选值
                                                           08位;116
                                              4位:量化表ID,取值范围为03

b)       表项      (64×(精度+1))字节             例如8位精度的量化表
                                               其表项长度为64×0+1=64字节

本标记段中,字段②可以重复出现,表示多个量化表,但最多只能出现4次。