<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于ARM11的無(wú)線視頻監(jiān)控系統(tǒng)

          基于ARM11的無(wú)線視頻監(jiān)控系統(tǒng)

          作者: 時(shí)間:2015-04-24 來(lái)源:網(wǎng)絡(luò) 收藏

            3 視頻數(shù)據(jù)采集和編碼設(shè)計(jì)

          本文引用地址:http://www.ex-cimer.com/article/273139.htm

            3.1 基于V4L2 視頻數(shù)據(jù)采集設(shè)計(jì)

            在Linux 系統(tǒng)下,對(duì)視頻設(shè)備的各種操作是通過(guò)Video4Linux2 實(shí)現(xiàn)的,簡(jiǎn)稱V4L2.應(yīng)用程序通過(guò)V4L2 提供的接口函數(shù)實(shí)現(xiàn)視頻設(shè)備的操作。整個(gè)視頻數(shù)據(jù)采集的過(guò)程如圖2 所示。

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

            (2)取得設(shè)備信息。通過(guò)ioctl(cam_fp, VIDIOC_QUERYCAP, &cap)函數(shù)來(lái)取得設(shè)備文件的屬性參數(shù)并存儲(chǔ)于cap 結(jié)構(gòu)中,其中cam_fp 指的是打開(kāi)的視頻設(shè)備的文件描述符。

            ( 3)選擇視頻輸入方式。通過(guò)ioctl(cam_fp,VIDIOC_ S_INPUT, &chan)函數(shù)設(shè)置視頻設(shè)備的輸入方式,其中chan 的數(shù)據(jù)結(jié)構(gòu)類型是v4l2_input,用來(lái)指定視頻的輸入方式。

            ( 4 ) 設(shè)置視頻幀格式。通過(guò)ioctl(cam_fp ,VIDIOC_S _FMT, &fmt)函數(shù)設(shè)置視頻的幀格式,其中fmt 的數(shù)據(jù)結(jié)構(gòu)類型是v4l2_format,用來(lái)指定視頻的寬度、高度、像素大小等。

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

            (6)關(guān)閉視頻設(shè)備。通過(guò)close(cam_fp)函數(shù)來(lái)實(shí)現(xiàn)視頻設(shè)備的關(guān)閉。

            

           

            圖2 視頻數(shù)據(jù)采集流程框圖。

            3.2 視頻數(shù)據(jù)的H264 編碼

            為了提高視頻數(shù)據(jù)編碼速度,本系統(tǒng)采用的是H264 硬編碼方式,硬編碼具有不占用CPU 資源,運(yùn)算速度快等優(yōu)點(diǎn),從而滿足視頻數(shù)據(jù)實(shí)時(shí)性的要求。

            具體編碼的過(guò)程如圖3 所示。

            (1)創(chuàng)建H264 編碼結(jié)構(gòu)。調(diào)用SsbSipH264EncodeInit (width, height, frame_rate, bitrate, gop_num)函數(shù)實(shí)現(xiàn)的,其中width 表示圖像的寬度,height 表示圖像的高度,frame_rate 表示幀頻,bitrate 表示比特率或碼率,gop_num 表示兩個(gè)相離關(guān)鍵幀之間最多包含多少個(gè)幀(B 或P 幀)。

            (2)初始化H264 編碼結(jié)構(gòu),調(diào)用SsbSipH264Encode Exe (handle)函數(shù)。

            (3)獲取視頻輸入地址,SsbSipH264EncodeGetInBuf (handle, 0)函數(shù)來(lái)實(shí)現(xiàn),該函數(shù)返回視頻輸入的首地址,存放在p_inbuf 中。

            (4)輸入視頻數(shù)據(jù),調(diào)用memcpy(p_inbuf, yuv_buf, frame_size)函數(shù)實(shí)現(xiàn),p_inbuf 存放需要編碼的數(shù)據(jù),yuv_buf 存放原始視頻數(shù)據(jù),frame_size 表示數(shù)據(jù)的大小。

            (5)編碼視頻數(shù)據(jù),對(duì)p_inbuf 內(nèi)容進(jìn)行H264編碼,調(diào)用SsbSipH264EncodeExe(handle)函數(shù)實(shí)現(xiàn)。

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

            (7)關(guān)閉硬編碼設(shè)備,調(diào)用SsbSipH264EncodeDeInit (handle)函數(shù)實(shí)現(xiàn)的。

            

           

            圖3 H264 編碼流程框圖。

            4 視頻數(shù)據(jù)的傳輸和顯示

            4.1 視頻數(shù)據(jù)傳輸模塊設(shè)計(jì)

            現(xiàn)代無(wú)線通信網(wǎng)絡(luò)標(biāo)準(zhǔn)主要有3G(第三代移動(dòng)通信),WI-FI,Bluetooth,Zigbee(紫蜂)等,具體詳見(jiàn)表1.

            表1 常用無(wú)線通信網(wǎng)絡(luò)標(biāo)準(zhǔn)的基本比較

            

           

            由于WI-FI 具有傳輸率高,支持的協(xié)議多,安裝及設(shè)置簡(jiǎn)單,成本低等優(yōu)點(diǎn),所以本系統(tǒng)采用的無(wú)線網(wǎng)絡(luò)標(biāo)準(zhǔn)是WI-FI.

          linux相關(guān)文章:linux教程


          攝像頭相關(guān)文章:攝像頭原理


          關(guān)鍵詞: ARM11 視頻監(jiān)控

          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();