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