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