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