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

          新聞中心

          EEPW首頁 > 手機與無線通信 > 設(shè)計應(yīng)用 > 基于3G無線網(wǎng)絡(luò)的視頻監(jiān)控系統(tǒng)前端設(shè)計

          基于3G無線網(wǎng)絡(luò)的視頻監(jiān)控系統(tǒng)前端設(shè)計

          作者: 時間:2012-07-16 來源:網(wǎng)絡(luò) 收藏


          2 軟件
          無線中以嵌入式Linux操作系統(tǒng)為核心,Linux作為一種開源的操作系統(tǒng),內(nèi)核可裁剪,支持多種硬件平臺和較強的網(wǎng)絡(luò)功能。Linux操作系統(tǒng)軟件由以下幾部分組成:BootLoader、Linux內(nèi)核、文件系統(tǒng)、應(yīng)用程序。其中應(yīng)用程序有采集程序、視頻壓縮編碼程序、視頻信號發(fā)送程序。
          2.1 視頻采集模塊
          Video4Linux是Linux中關(guān)于視頻設(shè)備的內(nèi)核驅(qū)動,它為針對視頻設(shè)備的應(yīng)用程序編程提供一系列接口函數(shù),通過使用接口提供的函數(shù)庫,對攝像頭進(jìn)行圖像采集。主要通過以下步驟對視頻圖像進(jìn)行采集:
          (1)用open函數(shù)打開視頻設(shè)備,可以獲得相應(yīng)的文件描述符;
          (2)獲取視頻設(shè)備屬性,包括名稱、類型、通道數(shù)、圖像寬度、圖像高度等;
          (3)通過ioctl函數(shù)返回采集圖像幀的屬性,包括圖像亮度、色彩、對比度等;
          (4)視頻的截取有兩種方法:第一種是用read()直接讀取數(shù)據(jù),第二種是用mmap把設(shè)備文件映射到內(nèi)存,用內(nèi)存映射法的優(yōu)點是效率高,因為進(jìn)程可以直接讀寫內(nèi)存,而不需要任何數(shù)據(jù)的拷貝,結(jié)合以上優(yōu)點,選擇此方法。視頻采集流程圖如圖2所示。

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

          b.JPG


          2.2 視頻壓縮編碼模塊
          采用ARM926-EJS內(nèi)置的VPU單元硬件編碼模塊完成H.264壓縮編碼。H.264采用了塊的動補償和編碼,同時它還采用一系列新的技術(shù),包括:運動矢量具有亞像素精度,對于亮度信號來說可以達(dá)到1/4像素精度;運動補償使用了塊大小可以改變的運動補償;允許使用多個參考幀;幀內(nèi)編碼使用幀內(nèi)預(yù)測;自適應(yīng)環(huán)路濾波;自適應(yīng)于內(nèi)容的算術(shù)編碼和變長編碼等,這些新技術(shù)的采用大大提升了視頻的壓縮率。編碼過程如圖3所示。
          NAL為分層結(jié)構(gòu),經(jīng)過VCL編碼后的視頻數(shù)據(jù)被組成NAL單元,一組NAL單元組成一個接入單元,一組接入單元組成一個視頻序列,再根據(jù)不同應(yīng)用,對視頻序列進(jìn)行處理。圖4為流結(jié)構(gòu)的NAL分層示意圖。

          c.JPG



          評論


          相關(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); })();