前言
由於工作上常常碰到Jpeg, Exif等名詞,雖然大學有修過多媒體概論,有基本介紹一般常見的
儲存格式,但是總體來說還是只是為了考試,實際上對這些內容完全沒有概念。
在不斷解issue過程也開始對JPEG有比較深刻的體會,也不得不整理一些資料。
*想到就加入內容,有查到更多資料可以分享再來更新
正文
平常聽到JPEG檔案其實是一種針對相片影像而廣泛使用的失真壓縮標準方法
並且透過JFIF(JPEG File Interchange Format,JPEG檔案交換格式) 詳細說明如何從一個JPEG串流,產出一個適合於電腦儲存和傳輸(像是在網際網路上)的檔案。
請參考維基百科介紹。
因此,可以知道JPEG是一種壓縮標準,而JFIF是一種檔案格式。
JPEG是第一個國際圖像壓縮標準,其特性如下:
- 圖像壓縮演算法提供良好的壓縮率,並且可以在解壓縮後獲得較高的還原率
- 廣泛使用於圖像︑影像領域
- PEG的壓縮方式通常是失真壓縮(lossy compression),即在壓縮過程中圖像的品質會遭受到可見的破壞
JIFF是一個圖檔格式標準,其特性如下:
- 使用JPEG圖像壓縮技術儲存圖片的方式
- 方便用戶在不同的裝置之間傳輸JPEG圖像
- 定義圖片長寬︑解析度︑色彩空間等基本訊息,這些訊息在JPEG壓縮標準沒有定義
- 由系列標記(marker)或標記段(marker segments)組成
JPEG FILE Layout
一個典型的JPEG檔案 format大概如下:
1. SOI : 0xd8 // 圖像開始
2. APP0: 0xe0 // JFIF 應用層區塊
a. APP0 length // APP0標記的長度
b. JFIF flag // JFIF標示
c. Version
d. Units for X/Y densities
f. X density
g. Y density
h. Thumbnail horizontal pixels
i. Thumbnail vertical pixels
j. Thumbnail RGB bitmap
3. APP1: 0xe1
a. APP1 length
b. EXIF flag
c. TIFF // TIFF格式的EXIF數據
4. APPn: 0xen // 可以填入Application所需要的資訊,例如塞入另一張圖像
5. DQT: 0xdb // 定義quantization table
6. SOF0: 0xc0 // start of frame
a. start of frame length
b. Precision (Bits per pixel per color component)
c. Image height
d. Image width
e. Number of color compnents
7. DHT: 0xc4 // 定義Huffman table
a. Huffman table length
b. Type , AC/DC
c. Index
d. A Bits table
e. A Value table
8. SOS: 0xda // 開始掃描的位置
9. EOI: 0xd9 // 圖片結束
今天先這樣,改天繼續補充。。。
參考資料:
https://blog.csdn.net/shelldon/article/details/54144406
https://zh.wikipedia.org/wiki/JPEG
http://vip.sugovica.hu/Sardi/kepnezo/JPEG%20File%20Layout%20and%20Format.htm
http://twins.ee.nctu.edu.tw/courses/soclab_04/lab_hw_pdf/proj1_jpeg_introduction.pdf
沒有留言:
張貼留言