基于3G無線網(wǎng)絡(luò)的視頻監(jiān)控系統(tǒng)前端設(shè)計
2 視頻監(jiān)控系統(tǒng)前端軟件設(shè)計
無線視頻監(jiān)控系統(tǒng)前端在設(shè)計中以嵌入式Linux操作系統(tǒng)為核心,Linux作為一種開源的操作系統(tǒng),內(nèi)核可裁剪,支持多種硬件平臺和較強的網(wǎng)絡(luò)功能。Linux操作系統(tǒng)軟件由以下幾部分組成:BootLoader、Linux內(nèi)核、文件系統(tǒng)、應(yīng)用程序。其中應(yīng)用程序有視頻采集程序、視頻壓縮編碼程序、視頻信號發(fā)送程序。
2.1 視頻采集模塊
Video4Linux是Linux中關(guān)于視頻設(shè)備的內(nèi)核驅(qū)動,它為針對視頻設(shè)備的應(yīng)用程序編程提供一系列接口函數(shù),通過使用接口提供的函數(shù)庫,對攝像頭進(jìn)行圖像采集。主要通過以下步驟對視頻圖像進(jìn)行采集:
(1)用open函數(shù)打開視頻設(shè)備,可以獲得相應(yīng)的文件描述符;
(2)獲取視頻設(shè)備屬性,包括名稱、類型、通道數(shù)、圖像寬度、圖像高度等;
(3)通過ioctl函數(shù)返回采集圖像幀的屬性,包括圖像亮度、色彩、對比度等;
(4)視頻的截取有兩種方法:第一種是用read()直接讀取數(shù)據(jù),第二種是用mmap把設(shè)備文件映射到內(nèi)存,用內(nèi)存映射法的優(yōu)點是效率高,因為進(jìn)程可以直接讀寫內(nèi)存,而不需要任何數(shù)據(jù)的拷貝,結(jié)合以上優(yōu)點,選擇此方法。視頻采集流程圖如圖2所示。本文引用地址:http://www.ex-cimer.com/article/154425.htm
2.2 視頻壓縮編碼模塊
采用ARM926-EJS內(nèi)置的VPU單元硬件編碼模塊完成H.264壓縮編碼。H.264采用了基于塊的動補償和編碼,同時它還采用一系列新的技術(shù),包括:運動矢量具有亞像素精度,對于亮度信號來說可以達(dá)到1/4像素精度;運動補償使用了塊大小可以改變的運動補償;允許使用多個參考幀;幀內(nèi)編碼使用幀內(nèi)預(yù)測;自適應(yīng)環(huán)路濾波;自適應(yīng)于內(nèi)容的算術(shù)編碼和變長編碼等,這些新技術(shù)的采用大大提升了視頻的壓縮率。編碼過程如圖3所示。
NAL為分層結(jié)構(gòu),經(jīng)過VCL編碼后的視頻數(shù)據(jù)被組成NAL單元,一組NAL單元組成一個接入單元,一組接入單元組成一個視頻序列,再根據(jù)不同應(yīng)用,對視頻序列進(jìn)行處理。圖4為流結(jié)構(gòu)的NAL分層示意圖。
評論