通過(guò)以上采集程序獲得的圖像數(shù)據(jù)為原始數(shù)據(jù),可以根據(jù)圖像采集格式將圖像信息存儲(chǔ)成文件,通過(guò)網(wǎng)絡(luò)用 webserver傳輸?shù)椒⻊?wù)器端刷新顯示。如果不對(duì)圖像進(jìn)行壓縮,則圖像數(shù)據(jù)較大,不便于在網(wǎng)絡(luò)上傳輸,這就要求系統(tǒng)首先對(duì)原始視頻圖像數(shù)據(jù)進(jìn)行壓縮處理,而通用網(wǎng)絡(luò)瀏覽器一般支持 BMP、JPG、GIF三種網(wǎng)絡(luò)圖片格式,因此本系統(tǒng)采用 JPEG壓縮方式。
JPEG是 Joint Photographic Experts Group(聯(lián)合圖像專家組)的縮寫(xiě),文件后綴名為“.jpg”或“.jpeg”,是最常用的圖像文件格式,是由一個(gè)軟件開(kāi)發(fā)聯(lián)合會(huì)組織制定,是一種有損壓縮方式,能夠?qū)D像壓縮到很小的儲(chǔ)存空間。JPEG格式是目前網(wǎng)絡(luò)上最流行的圖像格式,JPEG壓縮技術(shù)十分先進(jìn),它用有損壓縮方式去除冗余的圖像數(shù)據(jù),在獲得較高的壓縮率的同時(shí)能展現(xiàn)十分豐富生動(dòng)的圖像,非常適合于視頻網(wǎng)絡(luò)傳輸。
Linux中沒(méi)有 jpeg函數(shù)庫(kù),需要下載 jpegsrc.v6b.tar.gz后,在 /usr/src解壓安裝: cd jpeg-6b ./configure Make Make install
這樣,Linux就支持 jpeg函數(shù)庫(kù)了,在編譯器編譯連接時(shí)帶有 -l jpeg選項(xiàng)就能連接上 jpeg函數(shù)庫(kù)了。
利用下面函數(shù)將采集到的 YUV420P的原始圖像數(shù)據(jù)直接壓縮成 JPEG格式進(jìn)行傳輸:
int yuv420p_to_jpeg(char **jpeg_data, unsigned char *image, int width, int height,int quality),其中, jpeg_data 指向壓縮圖像數(shù)據(jù)指針的指針, image為采集圖像原始數(shù)據(jù),width為長(zhǎng)度,height為高度,quality為壓縮質(zhì)量,函數(shù)的返回值為產(chǎn)生壓縮圖像數(shù)據(jù)的長(zhǎng)度。
共 2 頁(yè): 1 2
維庫(kù)開(kāi)發(fā)網(wǎng)