新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 嵌入式無線視頻監控系統設計

        嵌入式無線視頻監控系統設計

        作者: 時間:2012-03-26 來源:網絡 收藏

        操作系統中,外部設備都作為設備文件來管理,因此,對外部設備的操作就轉變成對設備文件的操作。視頻設備文件位于/dev/目錄下,一般情況下為video0。當攝像頭通過USB接口連接到視頻采集終端后,在程序中調用V4L APIs對設備文件video0的讀操作即可實現攝像頭視頻數據采集。其主要過程如下:

        1)打開設備文件: int v4l_open(char *dev, v4l_device *vd){}打開影像源的設備文件;

        2)初始化picture: int v4l_get_picture(v4l_device *vd){} 獲取輸入的影像信息;

        3)初始化channel:int v4l_get_channels(v4l_device *vd){} 獲取每個channel的信息;

        4)對channel設置norm:int v4l_set_norm(v4l_device *vd, int norm){} 對所有的channel設置norm;

        5)設備地址映射:v4l_mmap_init(v4l_device *vd){} 返回存放圖像數據的地址;

        6)初始化mmap緩沖區: int v4l_grab_init(v4l_device *vd, int width, int height){};

        7)視頻捕獲同步: int v4l_grab_sync(v4l_device *vd){};

        8)視頻捕獲: int device_grab_frame(){}。

        通過以上操作,即可將攝像頭視頻數據采集到內存。采集到內存的視頻數據既可采用文件的形式保存,也可將其壓縮后封裝進數據包,通過網絡傳輸到數據處理中心。本設計采用后一種處理方法,即:先將采集的視頻數據進行JPEG壓縮,再將其封裝進數據包傳輸到視頻應用服務端處理。

        3 視頻壓縮模塊設計

        由于視頻采集模塊采集的視頻數據信息量較大,如果直接通過網絡傳輸,則會增加數據傳輸系統的負擔,大大降低數據傳輸效率。為此,本設計采用JPEG —Joint Photographic Experts Group壓縮編碼算法對視頻數據進行壓縮。JPEG是一個適用于彩色、單色多灰度、連續色調靜止數字圖像的壓縮標準,是靜態數字圖像壓縮的國際標準,不僅適用于靜止圖像壓縮,而且適用于電視圖像序列的幀內圖像壓縮。由于JPEG壓縮采用的是全彩影像標準,其主要處理過程包括:色彩模型轉換、離散余弦— DCT變換、重排DCT結果、量化、編碼等。

        在本設計中,采用最基本的JPEG算法,其主要步驟為:首先,通過離散余弦變換(DCT)去除數據冗余;其次,使用量化表對DCT系數進行量化;最后,采用Huaffman可變字長編碼對量化后的DCT系數進行編碼,使其熵達到最小。通過實驗,數據壓縮效果良好,圖像壓縮率可以達到70%左右。

        4 無線發射、接收模塊設計

        本設計采用 2.4GHz無線收發芯片完成視頻數據的無線傳輸。nRF2410是一款單片射頻收發芯片,工作在2.4GHz~2.5GHz ISM頻段,該芯片內置頻率合成器、功率放大器、晶振和調制解調器等功能模塊,其輸出功率和通信頻道等參數都可以通過程序進行配置。內置的 DuoCeiver接收器使可以使用同一天線同時接收兩個不同頻道的數據,這為視頻數據的傳輸提供了有利條件。

        nRF2401在發送和接收數據時主要完成以下操作:

        1)初始化發送端和接收端:主要完成I/O端口的配置,使能發送器/接收器,啟動計數器等;

        2)發送器/接收器配置:先打開配置方式,再配置發送/接收器,最后使能收發功能;

        3)接收包/接收包處理:

        4)發送/接收數據:完成數據包的發送/接收操作;

        5)讀取A/D轉換結果:等待AD轉換完成后,讀取A/D轉換結果數據,并開始接受新的轉換;

        5 視頻傳輸模塊設計

        視頻傳輸模塊收到無線接收模塊遞交的視頻數據后,可以通過串口或網絡接口將其傳輸到視頻應用服務端,本設計采用網絡接口進行數據傳輸。目前,互聯網上傳輸視頻數據大多采用UDP協議。UDP協議提供非連接、不可靠的數據傳輸,由于接收端只對收到的UDP數據包進行簡單的完整性校驗,丟棄有錯誤的數據包,因此數據傳輸速度較快。然而,為了提高數據傳輸的準確性和減少因使用UDP協議而額外增加的、繁瑣的數據確認操作,本設計選用面向連接的、可靠的數據傳輸協議—TCP。

        6視頻應用服務端—視頻顯示模塊設計與實現

        視頻應用服務端采用Borland C++ Builder6.0完成監控視頻的合成(如果視頻應用服務端采用操作系統,則可以使用Kylix完成相同的功能)。由于BCB的Image類可以完成精確到像素的圖像處理能力,可以將BMP、Drawing、自定義圖形等顯示成圖像。因此,Socket API 從網絡接收視頻數據后,首先將接收到的JPEG圖像轉換成BMP,然后將其傳送給Image對象,Image對象最后處理視頻數據、生成圖像視頻并將其顯示出來。

        7 結束語

        本文提出了一種基于 S3C2410X的嵌入式無線視頻監控系統設計。采用嵌入式操作系統進行視頻采集、壓縮和打包并通過nRF2401無線發射、接收模塊進行視頻數據無線傳輸,最后通過TCP/IP網絡將視頻數據從視頻傳輸模塊傳輸到視頻應用服務端,構成一套完整的無線視頻監控系統。由于系統的核心工作采用高性能嵌入式處理器完成,因此該系統具有結構簡單、性能穩定、成本低廉等優點,在油田、油氣井無線視頻監控,智能家居等領域具有廣闊的應用前景。

        本文作者創新點:將視頻監控從有線系統延伸到無線系統,提出了構建無線視頻局域網的一種方法,此方法在智能家居等領域具有廣闊的應用前景。

        參考文獻:

        [1] 陳俊宏,Embedded Linux嵌入式系統原理與實務[M].北京:中國鐵道出版社,2004

        [2] 曹 翔, 實時視頻傳輸在MPLS網絡中的QoS研究[J]. 微計算機信息,2006,7-3:58-60

        [3] Nordic VLSI ASA .nRF2401 Single Chip 2.4GHz Radio Transceiver Product Specification,2003.

        linux操作系統文章專題:linux操作系統詳解(linux不再難懂)

        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 新郑市| 蓬溪县| 北川| 泾阳县| 保山市| 通榆县| 苏尼特右旗| 正宁县| 诏安县| 周至县| 云南省| 建湖县| 宁波市| 华安县| 吕梁市| 池州市| 河北区| 应城市| 东明县| 车险| 织金县| 依安县| 花莲县| 万山特区| 德清县| 承德市| 仲巴县| 昌邑市| 牟定县| 乳山市| 麟游县| 望奎县| 中江县| 广南县| 石柱| 科尔| 府谷县| 梁河县| 正宁县| 比如县| 潼南县|