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