1. 程式人生 > >常見圖片格式詳解(三)---JPEG

常見圖片格式詳解(三)---JPEG

JPEG 圖片格式 編碼 解碼 壓縮

JPEG簡介

JPEG是一種比較成熟的有損的圖像壓縮格式,經過JPEG壓縮,圖像質量會有所損失,但是,人眼不容易分辨出來這種差別。jpeg圖像在質量和存儲空間得到了一個相對平衡的狀態。不過jpeg文件在組織方式上略顯復雜,詳細請向下看。


JPEG文件的存儲方式

jpeg文件是按照段的格式來組織存儲的,每一個文件由多個段組成,每個段代表不同的信息。同時,每個段也有自己唯一的標識符。標識符是由兩個字節所組成,格式如0x FF XX,其中XX代表的是不同的類型。例如,SOI(start of image),表示圖像的開始,其段頭的標識符為 0X FF D8。而整個jpeg圖片的組織便是由諸多這些不同類型的段和經過JPEG壓縮後的數據而組成。如果解析,需要根據這些段不同的頭類型來做相應的處理。

主要的JPEG段

> 1. SOI

SOI(start of image):值 0xFF D8,標記圖像的開始。


> 2.APP0(應用程序標記)

APP0:值 0x FF E0,應用程序標記。組織結構如下:
技術分享圖片


> 3.SOF

SOF(start of frame):值0x FF C0,圖像幀開始標記。

技術分享圖片

4SOS
技術分享圖片

在SOS之後,便是具體的按照jpeg編碼的壓縮數據。該部分內容需要使用jpeg相應的解碼庫去實現解碼。

在jpeg文件中,如果遇到了0xFF D9 , 那就表明整個文件讀取結束了。該字段也有個名稱叫做EOI(end of image),占用兩個字節。

當然了,整個jpeg文件還有其他的段,仿照上述便同樣可以分析,剩下的學習敬請諸君發揮您的主觀能動性啦,希望本篇能對你有所啟發。

常見圖片格式詳解(三)---JPEG