3D圖像文件主要以.MPO爲擴展名。該類型文件主要有多個JPEG片段組成。要對MPO類型文件進行了解。首先了解一下JPEG文件的格式。
一、JPEG文件格式介紹
JPEG文件使用的數據存儲方式有多種。最常用的格式稱爲JPEG文件交換格式(JPEG File Interchange Format,JFIF)。而JPEG文件大體上可以分成兩個部分:標記碼(Tag)和壓縮數據。
標記碼由兩個字節構成,其前一個字節是固定值0xFF,後一個字節則根據不同意義有不同數值。在每個標記碼之前還可以添加數目不限的無意義的0xFF填充,也就說連續的多個0xFF可以被理解爲一個0xFF,並表示一個標記碼的開始。而在一個完整的兩字節的標記碼後,就是該標記碼對應的壓縮數據流,記錄了關於文件的諸種信息。
常用的標記有SOI、APP0、DQT、SOF0、DHT、DRI、SOS、EOI。
注意,SOI等都是標記的名稱。在文件中,標記碼是以標記代碼形式出現。例如SOI的標記代碼爲0xFFD8,即在JPEG文件中的如果出現數據0xFFD8,則表示此處爲一個SOI標記。
u 標記代碼 2字節 固定值0xFFD8
u 標記代碼 2字節 固定值0xFFE0
u 包含9個具體字段:
① 數據長度 2字節 ①~⑨9個字段的總長度
即不包括標記代碼,但包括本字段
② 標識符 5字節 固定值0x4A46494600,即字符串“JFIF0”
③ 版本號 2字節 一般是0x0102,表示JFIF的版本號1.2
可能會有其他數值代表其他版本
④X和Y的密度單位 1字節 只有三個值可選
0:無單位;1:點數/英寸;2:點數/釐米
⑤X方向像素密度 2字節 取值範圍未知
⑥Y方向像素密度 2字節 取值範圍未知
⑦ 縮略圖水平像素數目 1字節 取值範圍未知
⑧ 縮略圖垂直像素數目 1字節 取值範圍未知
⑨ 縮略圖RGB位圖 長度可能是3的倍數 縮略圖RGB位圖數據
本標記段可以包含圖像的一個微縮版本,存爲24位的RGB像素。如果沒有微縮圖像(這種情況更常見),則字段⑦“縮略圖水平像素數目”和字段⑧“縮略圖垂直像素數目”的值均爲0。
APPn,Application,應用程序保留標記n,其中n=1~15(任選)
u 標記代碼 2字節 固定值0xFFE1~0xFFF
u 包含2個具體字段:
① 數據長度 2字節 ①~②2個字段的總長度
即不包括標記代碼,但包括本字段
② 詳細信息 數據長度-2字節 內容不定
例如,Adobe Photoshop生成的JPEG圖像中就用了APP1和APP13兩個標記段分別存儲了一幅圖像的副本。
DQT,Define Quantization Table,定義量化表
u 標記代碼 2字節 固定值0xFFDB
u 包含9個具體字段:
① 數據長度 2字節 字段①和多個字段②的總長度
即不包括標記代碼,但包括本字段
② 量化表 數據長度-2字節
a) 精度及量化表ID 1字節 高4位:精度,只有兩個可選值
0:8位;1:16位
低4位:量化表ID,取值範圍爲0~3
b) 表項 (64×(精度+1))字節 例如8位精度的量化表
其表項長度爲64×(0+1)=64字節
本標記段中,字段②可以重複出現,表示多個量化表,但最多隻能出現4次。