新聞中心

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

        基于ARM11的無線視頻監控系統

        作者: 時間:2015-04-24 來源:網絡 收藏

          3 視頻數據采集和編碼設計

        本文引用地址:http://www.104case.com/article/273139.htm

          3.1 基于V4L2 視頻數據采集設計

          在Linux 系統下,對視頻設備的各種操作是通過Video4Linux2 實現的,簡稱V4L2.應用程序通過V4L2 提供的接口函數實現視頻設備的操作。整個視頻數據采集的過程如圖2 所示。

          ( 1) 打開視頻設備, int open( const char *pathname, int flags)。調用該函數,若返回值為-1,表示打開失敗,否則,表示所打開設備的文件描述符。

          (2)取得設備信息。通過ioctl(cam_fp, VIDIOC_QUERYCAP, &cap)函數來取得設備文件的屬性參數并存儲于cap 結構中,其中cam_fp 指的是打開的視頻設備的文件描述符。

          ( 3)選擇視頻輸入方式。通過ioctl(cam_fp,VIDIOC_ S_INPUT, &chan)函數設置視頻設備的輸入方式,其中chan 的數據結構類型是v4l2_input,用來指定視頻的輸入方式。

          ( 4 ) 設置視頻幀格式。通過ioctl(cam_fp ,VIDIOC_S _FMT, &fmt)函數設置視頻的幀格式,其中fmt 的數據結構類型是v4l2_format,用來指定視頻的寬度、高度、像素大小等。

          (5)讀取視頻數據。通過read(cam_fp, g_yuv,YUV_ SIZE)函數,把攝像頭一幀的數據存放到g_yuv中,其中YUV_ SIZE 指的是每幀數據的大小。

          (6)關閉視頻設備。通過close(cam_fp)函數來實現視頻設備的關閉。

          

         

          圖2 視頻數據采集流程框圖。

          3.2 視頻數據的H264 編碼

          為了提高視頻數據編碼速度,本系統采用的是H264 硬編碼方式,硬編碼具有不占用CPU 資源,運算速度快等優點,從而滿足視頻數據實時性的要求。

          具體編碼的過程如圖3 所示。

          (1)創建H264 編碼結構。調用SsbSipH264EncodeInit (width, height, frame_rate, bitrate, gop_num)函數實現的,其中width 表示圖像的寬度,height 表示圖像的高度,frame_rate 表示幀頻,bitrate 表示比特率或碼率,gop_num 表示兩個相離關鍵幀之間最多包含多少個幀(B 或P 幀)。

          (2)初始化H264 編碼結構,調用SsbSipH264Encode Exe (handle)函數。

          (3)獲取視頻輸入地址,SsbSipH264EncodeGetInBuf (handle, 0)函數來實現,該函數返回視頻輸入的首地址,存放在p_inbuf 中。

          (4)輸入視頻數據,調用memcpy(p_inbuf, yuv_buf, frame_size)函數實現,p_inbuf 存放需要編碼的數據,yuv_buf 存放原始視頻數據,frame_size 表示數據的大小。

          (5)編碼視頻數據,對p_inbuf 內容進行H264編碼,調用SsbSipH264EncodeExe(handle)函數實現。

          (6)輸出已編碼的數據,SsbSipH264EncodeGetOutBuf (handle, size),該函數返回已編碼圖像的首地址,size 表示已編碼圖像的大小。

          (7)關閉硬編碼設備,調用SsbSipH264EncodeDeInit (handle)函數實現的。

          

         

          圖3 H264 編碼流程框圖。

          4 視頻數據的傳輸和顯示

          4.1 視頻數據傳輸模塊設計

          現代無線通信網絡標準主要有3G(第三代移動通信),WI-FI,Bluetooth,Zigbee(紫蜂)等,具體詳見表1.

          表1 常用無線通信網絡標準的基本比較

          

         

          由于WI-FI 具有傳輸率高,支持的協議多,安裝及設置簡單,成本低等優點,所以本系統采用的無線網絡標準是WI-FI.

        linux相關文章:linux教程


        攝像頭相關文章:攝像頭原理


        關鍵詞: ARM11 視頻監控

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 和静县| 虹口区| 东乌珠穆沁旗| 东城区| 林甸县| 纳雍县| 始兴县| 德昌县| 同德县| 和政县| 天全县| 林周县| 乐陵市| 涟源市| 阿拉善盟| 新河县| 安泽县| 阳朔县| 章丘市| 北宁市| 马山县| 张家口市| 铜梁县| 泰来县| 保康县| 沙田区| 鄂尔多斯市| 随州市| 洛南县| 关岭| 晋中市| 厦门市| 上杭县| 宜宾市| 纳雍县| 进贤县| 肥东县| 忻州市| 西贡区| 苍山县| 正镶白旗|