基于A(yíng)RM的遠程無(wú)線(xiàn)監控系統的設計與實(shí)現
圖像的采集是通過(guò)ARM-Linux調度Video4Linux和影像設備驅動(dòng)程序來(lái)進(jìn)行視頻捕獲。Video4Linux是Linux影像系統與嵌人式影像的基礎,是Linux 內核里支持影像設備的一組API,Linux在多媒體上的應用是目前非常熱門(mén)的研究領(lǐng)域,其中最關(guān)鍵的技術(shù)則是Linux的Video4Linux。在Linux內核中對Video4Linux進(jìn)行配置,如圖2所示。配置好以后通過(guò)bootloader下載到ARM-Linux里。USB攝像頭使用的是OV511芯片的網(wǎng)眼V2000攝像頭。在Linux操作系統里配置好OV511芯片的驅動(dòng),如圖3所示。
圖2 配置Video for Linux
圖3 配置USB OV511攝像頭
通過(guò)bootloader下載到ARM-Linux里,這樣就可以通過(guò)USB攝像頭進(jìn)行圖像采集,圖像采集流程如圖4所示。
采集到的圖像為BMP格式,圖像太大不利于網(wǎng)絡(luò )傳輸,需要進(jìn)行JPEG壓縮,JPEG壓縮技術(shù)十分先進(jìn),它用有損壓縮方式去除冗余的圖像數據,在獲得較高的壓縮率的同時(shí)能展現十分豐富生動(dòng)的圖像,非常適合于視頻網(wǎng)絡(luò )傳輸?;镜腏PEG算法由以下步驟完成:(1)通過(guò)離散余弦變換(DCT)消除數據冗余;(2)使用量化系數矩陣對離散余弦變化系數進(jìn)行量化;(3)對量化后的系數進(jìn)行編碼,使其熵最小,熵編碼通常采用huffman可變字長(cháng)編碼。產(chǎn)生有損圖像壓縮的原因主要發(fā)生在第2步。JPEG標準是在變換編碼的基礎上,綜合應用了DCT和哈夫曼編碼2種手段,達到了很好的圖像壓縮效果?;陔x散余弦變換DCT的編碼方法,是JPEG算法的核心內容[5]。在圖像采集的時(shí)候需要用到JPEG庫,所以需要先安裝JPEG庫。
圖4 圖像采集流程圖
在/usr/local/man/manl目錄下會(huì )生成cjpeg.l、djpeg.l、jpegtran.l、rdjpgcom.l、wrjpgcom.l、snapscreenshop.l六個(gè)文件,在/usr/local/arm/3.4.3/arm-linux/lib目錄下會(huì )生成libjpeg.a、libjpeg.la、libjpeg.so、 libjpeg.so.62、libjpeg.so.0.0五個(gè)函數庫,libjpeg.so.62、libjpeg.so.0.0就是我們需要的庫,將它拷貝到arm-linux里,這樣ARM就支持JPEG壓縮格式的圖像。圖像壓縮的一些重要函數如下:
采集到的圖像如圖5所示。如果要進(jìn)行連續幀的采集由grab_fd.frams來(lái)確定需要采集的幀數,最多支持一次采集32幀。
評論