Saturday, September 22, 2007

Sampling in JPEG Images


(a) Source image with multiple components

規格書 P.25 的 Figure A.1 Source image characteristics, , 如果你仔細觀察, 圖 (a) 共有 Nf 個 components, 用 Ci 來辨識。每個 component 的大小是可以不相同, 分別用 xi, yi 來表示。


(b) Characteristics of an image component

圖(b) 則是說明了各個變數所代表的意義。

定義 X 為 xi 的最大值, Y 為 yi 的最大值, X, Y 的值儲存在 frame header 之中。每個component的大小不同, 代表 JPEG 可以用不同的 sampling factors 來對不同的 components 做 sampling process。Hi 代表水平取樣參數( horizontal sampling factor ), Vi 代表垂直取樣參數( vertical sampling factor ) 也是同樣儲存於 frame header 之中。

注意: xi 與 yi 並沒有儲存在 frame header 之中, JPEG Decoder 必須透過下列公式來計算出正確的 xi 與 yi :

xi = ceiling function( X × ( Hi / Hmax )) ;
yi = ceiling function( Y × ( Vi / Vmax )) ;

規格書 P. 24 有一個例子, 如下:
假設有一張具有 3 個 components的影像, 3個 components 之中, 最多的有 512 lines, 每個 line 最多具有 512 個 samples。所以
Y = 512, X = 512;

3 個 components 的 sampling factors 分別為:

Component 0 H0 = 4, V0 = 1
Component 1 H1 = 2, V1 = 2
Component 2 H2 = 1, V2 = 1

因此, Hmax = 4, Vmax = 2。所以根據上述公式計算得到

Component 0 x0 = 512, y0 = 256
Component 1 x1 = 256, y1 = 512
Component 2 x2 = 128, y2 = 256