2013年1月13日 星期日

96360210 黃彥羲 HW4

所選圖片
JPEG本身的Marker由"FFxx"表示,其中大部分後面接了2個byte表示總共長度,長度後面的內容各自有其意義,當一個Marker跑完時,可以發現緊鄰的下一個又是一個Marker。


FFD8+FFE0
FFD8 : SOI 圖像開始 ( Start of Image )

FFE0 : APP0 應用程式的保存數據
長度 : 0x0010 = 16 ; 因PSPad一行總共16,因此選取部分恰好一行。

FFDB
 
FFDB : DQT 定義量化表 ( Define Quantization Table )
長度 : 0x0043 =  67 = 2(長度) + 1(Pq+Dq) + 64(量化表內容) ;
可以發現共有兩個"FFDB",而其Dq各為0和1,對應請見"FFC2"。

根據 " FFDB "可以畫出以下 DQT :
DQT本身呈現Z字走法,因此第一張用小畫家示意。

DQT Dq=0;


DQT Dq=0
DQT Dq = 1;
0304050914141414
0404050D14141414
05050B1414141414
090D141414141414
1414141414141414
1414141414141414
1414141414141414
1414141414141414



FFC2
FFC2 : SOF2 Progressive DCT, Huffman coding
內容:
  1. 0011 : 長度17
  2. 08 : 樣本8bit
  3. 0177 : 長度375
  4. 01F4 : 寬度500
  5. 03 : YCbCr
  6. 01 22 00 : Y,HiVi=22,對應DQT Dq=0
  7. 02 11 01 : Cb,HiVi=11,對應DQT Dq=1
  8. 03 11 01 : Cr,HiVi=11,對應DQT Dq=1


FFC4

 FFC4 : DHT ( Define Huffman table )
長度 : 0x001C = 28 , 0x001A = 26 ;
00 : DC、Th = 0 ;
01 : DC、Th = 1 ;

根據 " FFC4 " 可以畫出以下Huffman table :

TcTh : 00 / DC 0 號表 :

序號長度二進位權值
020002
121013
2341001
3351014
441211000
541311015
641411106
7530111107
86621111108

TcTh : 01 / DC 1 號表 :

序號長度二進位權值
020001
121012
222103
3361104
441411100
5530111105
66621111106




FFDA

FFDA : SOS ( Start of scan )
內容 :
  1. 000C : 長度12
  2. 03 : YCbCr
  3. 01 00 : Y,DC用0,AC用0
  4. 02 10 : Cb,DC用1,AC用0
  5. 03 10 : Cr,DC用1,AC用0
FFD9 : EOI ( End of Image )

沒有留言:

張貼留言