MPO文件類型解碼(一)瞭解JPEG文件格式

  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次。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章