圖片檔案數據恢復

一般使用的圖片都是jpg格式的,就以jpg圖片為例,講解一下jpg圖片檔案數據恢復。 jpg全名是JPEG。JPEG圖片以 24 位顏色存儲單個點陣圖。JPEG 是與平台無關的格式,支持最高級別的壓縮,不過,這種壓縮是有損耗的。漸近式 JPEG 檔案支持交錯。 jpg格式是一種圖片格式,是一種比較常見的圖畫格式,如果你的圖片是其他格式,可以通過以下方法轉化: 1、photoshop,打開圖畫以後,按另外儲存為,下面格式那裡選擇JPG格式就是了,這個方法比較簡單,而且適合畫質比較好的,要求比較高的圖片轉換。 2、如果你要求不高,你直接通過windows附帶的圖畫程式,選擇JPG格式就可以,這種轉換方式畫質不高 如果JPG格式轉其他格式,這樣的方法同樣適用。

Jpg圖片數據結構

表1:段的一般結構

名 稱 位元組數 數據 說明

段 標識 1 FF 每個新段的開始標識

段類型 1 類型編碼(稱作“標記碼”)

段長 度 2 包括段內容和段長度本身,不包括段標識和段類型

段內容 ≤65533位元組

說明:

①JPG 檔案中所有關於寬度高度長度間隔這一類數據,凡是>1位元組的,均採用Motorola格式,即:高位在前,低位在後。

② 有些段沒有長度描述也沒有內容,只有段標識和段類型。檔案頭和檔案尾均屬於這種段。

③段與段之間無論有多少FF都是合法的,這些FF稱為“填充字 節”,必須被忽略掉。

2.段類型有30種,但只有10種是必須被所有程式識別的,其它的類型都可以忽略。所以下面只列出這 10種類型。

表2:段類型

名稱 標 記碼 說明

SOI D8 檔案頭

EOI D9 文 件尾

SOF0 C0 幀開始(標準 JPEG)

SOF1 C1 同上

DHT C4 定 義 Huffman 表(霍夫曼表)

SOS DA 掃描行開始

DQT DB 定義量化表

DRI DD 定 義重新開始間隔

APP0 E0 定義交換格式和圖像識別信息

COM FE 注釋

說明:有的文章也將DNL段(標記碼=DC,定義掃描行數)列為必須段。

3.以下按一般JPEG檔案的段排列順序詳細介紹 各種段的結構:

表3:SOI(檔案頭)

名稱 位元組數 值

段 標識 1 FF

段類型 1 D8

說明:這兩個位元組構成了 JPEG檔案頭。

表4:APP0(圖像識別信息)

名 稱 位元組數 值 說明

段 標識 1 FF

段類型 1 E0

段長度 2 0010 如果有 RGB縮略圖就=16+3n

(以下為段內容)

交換格式 5 4A46494600 “JFIF”的ASCII碼

主 版本號 1

次版本號 1

密度單位 1 0=無單位;1=點數/英 寸;2=點數/厘米

X像素密度 2 水平方向的密度

Y像素密 度 2 垂直方向的密度

縮略圖X像素 1 縮略圖水平像素數目

縮 略圖Y像素 1 縮略圖垂直像素數目

(如果“縮略圖X像素”和“縮略圖Y像素”的值均>0,那么才有下面的數 據)

RGB縮略圖 3×n n=縮略圖像素總數=縮略圖X像素×縮略圖Y像素

說明:

①JFIF是JPEG File Interchange Format的縮寫,即JPEG檔案交換格式,另外還有TIFF等格式,很少 用

②“如果有RGB縮略圖就=16+3n”是什麼意思呢?比如說“縮略圖X像素”和“縮略圖Y像素”的值均為48,就表示有一個48×48像素的 縮略圖(n=48×48),縮略圖是24位真彩點陣圖,用3個位元組來表示一個像素,所以共占用3n個位元組。但大多數JPG檔案都沒有這個“雞肋”縮略圖。

表 5:COM(注釋)

名 稱 位元組數 值 說明

段 標識 1 FF

段類型 1 FE

段長度 2 其值=注釋字元的位元組數+2

段 內容 注釋字元

說明:有的JPEG檔案沒有這個段。

表6:DQT(定義量化表)

名 稱 位元組數 值 說明

段 標識 1 FF

段類型 1 DB

段長度 2 43 其值=3+n(當只有一個 QT時)

(以下為段內容)

QT信息 1 0-3位:QT號

4-7 位:QT精度(0=8bit,1位元組;否則=16bit,2位元組)

QT n n=64×QT精度的位元組數

說明:

①JPEG檔案一般有2個DQT段,為Y值(亮度)定義1個, 為C值(色度)定義1個。

②一個DQT段可以包含多個 QT, 每個都有自己的信息位元組

表7:SOF0(圖像基本信息)

名 稱 位元組數 值 說明

段 標識 1 FF

段類型 1 C0

段長度 2 其值=8+組件數量×3

(以 下為段內容)

樣本精度 1 8 每個樣本位數(大多數軟體不支持12和16)

圖片高度 2

圖片寬度 2

組 件數量 1 3 1=灰度圖,3=YCbCr/YIQ 彩色圖,4=CMYK 彩色圖

(以下每個組件占用3位元組)

組 件 ID 1 1=Y, 2=Cb, 3=Cr, 4=I, 5=Q

採樣係數 1 0-3位:垂直采 樣係數

4-7位:水平採樣係數

量化表號 1

說明:

①JPEG大都採用yCrCb色彩模型(y表示亮度,Cr紅色分量,Cb表示藍色分量),所以組件數量一般=3

②樣本就是單個像 素的顏色分量,也可理解為一個樣本就是一個組件

③採樣係數是實際採樣方式與最高採樣係數之比,而最高採樣係數一般=0.5(分數表示為1/2)。 比如說,垂直採樣係數=2,那么2×0.5=1,表示實際採樣方式是每個點采一個樣,也就是逐點採樣;如果垂直採樣係數=1,那 么:1×0.5=0.5(分數表示為1/2),表示每2個點采一個樣

表8:DHT(定義Huffman表)

名 稱 位元組數 值 說明

段 標識 1 FF

段類型 1 C4

段長度 2 其值=19+n(當只有一個 HT表時)

(以下為段內容)

HT信息 1 0-3位:HT號

4 位: HT類型, 0=DC表,1=AC表

5-7位:必須=0

HT位 表 16 這16個數的和應該≤256

HT值表 n n=表頭16個數的和

說明:

①JPEG檔案里有2類Haffman 表:一類用於DC(直流量),一類用於AC(交流量)。一般有4個表:亮度的DC和AC,色度的 DC和AC。最多可有6個。

②一個DHT 段可以包含多個HT表, 每個都有自己的信息位元組

③HT表是一個按遞增次序代碼長度排列的符號 表。

表9:DRI(定義重新開始間隔)

名 稱 位元組數 值 說明

段 標識 1 FF

段類型 1 DD

段長度 2 4

(以下為段內容)

開 始間隔 2 n  復位標記的間隔距離

說明:

①開始間隔表示在壓縮數據流中,每隔n個MCU 塊就有一個RST標記,RST標記將Huffman 的解碼數據流復位,DC也重新從0 開始,因此,RST標記是一種復位標記

②RST 標記是一種特殊的段,它只具有段標識和段類型(長度=2位元組),但它不是獨立的段,只能穿插在數 據流中(檔案頭和檔案尾段也只有段標識和段類型,卻都是獨立的段)。

③RST標記共有8個(RST0-RST7),從RST0起開始使用,然後是 RST1....直至RST7,再從RST0重複。

④RST標記的標識碼是 FFD0-FFD7,對應 RST0-RST7

⑤筆者查看了 許多自己電腦上的JPG檔案的數據,未發現DRI段和RST標記,所以無法進行詳盡的考察

表10:SOS(掃描行開始)

名 稱 位元組數 值 說明

段 標識 1 FF

段類型 1 DA

段長度 2 000C 其值=6+2×掃描行內組件數量

(以下為段內容)

掃描行內組件數 量 1 3 必須≥1,≤4(否則錯誤),通常=3

(以下每個組件占用2位元組)

組件 ID 1 1 = Y, 2 = Cb, 3 = Cr, 4 = I, 5 = Q

Huffman表 號 1 0-3位:AC表號 (其值=0...3)

4-7 位:DC表號(其值=0...3)

3 最後3個位元組用途不明,忽略

說明:緊接SOS段後的是壓縮的圖像數據(一個個掃描行),數據存放順序是從左到右、從上到下。

表11:EOI(檔案尾)

名 稱 位元組數 值

段標識 1 FF

段類型 1 D9

說明:這兩個位元組構成了JPEG檔案尾。

相關詞條

熱門詞條

聯絡我們