Thursday, August 23, 2007

Frame Header in JPEG files

Frame header 出現在 frame 資料的最前端, 主要指明:
1. the source image characteristics,
 來源影像的一些特性, 如長、寬等。
2. the components in the frame,
 來源影像由多少個 components 組成。
3. the sampling factors for each component,
 每一個 component 的取樣因數。
4. the destination from which the quantized tables to be used with each component are retrieved.
 每一個 quantization table 都有一個 destination identifier, 當我們要指明某個 component 要使用哪一個 quantization table 來作量化處理時, 就是在 frame header 中指明該 table 的 destination identifier。
 

這個圖是出現在規格書 P. 35 的 Figure B.3 Frame header syntax。

SOFn: Start of Frame marker,
利用 n 來指明屬於哪一種模式的壓縮方式, 詳細列表在規格書 P. 32 Table B.1 。
Rex.pdf 文件中, 你可以在 P. 23 , Address 00003573h 找到 X'FFC0', 換句話說, Rex.jpg 這張影像是屬於 Baseline DCT 的壓縮模式。



Lf: Frame Header Length
 Frame header 的長度。在 Rex.pdf 中, Lf = 0011h, 因此共 17 Bytes。

P: Sample Precision

 每一個 sample 用多少個 bits 來記錄其值。
 P = 0008h, 表示每個 sample 用 8 bits 存。

Y: Number of lines

 影像的高, Y = 0078h, Rex.jpg 影像高 120 pixels。

X: Number of samples per line

 影像的寬, X = 0078h, Rex.jpg 影像寬 120 pixels。

Nf: Number of image component in frame
 影像是由 Nf 個 components 所組成,
 Rex.jpg 就是由 3 個 components 所組成的彩色影像。

在 Nf 參數之後的是 Nf 組 Component-specification parameters, 每一個 component 都有一組對應的參數來描述:

Ci: Component identifier
 每一個 component 都有一個 identifier 來做識別代碼。
 第 i 個 component 的 identifier 就是 Ci。

Hi: Horizontal sampling factor
 第 i 個 component 的水平取樣參數。
 
Vi: Vertical sampling factor
 第 i 個 component 的垂直取樣參數。
 
Tqi: Quantization table destination selector
 指明第 i 個 component 是用哪一個 quantization table 來做量化處理。

Rex.jpg 這張影像中, 一共有 3 個 components, 因此共有 3 組的 Component-specification parameters, 分別如下:
C1 = 01, H1 = 1, V1 = 1, Tq1 = 00;
C2 = 02, H2 = 1, V2 = 1, Tq2 = 01;
C3 = 03, H3 = 1, V3 = 1, Tq3 = 01。
 

No comments:

Post a Comment