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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 基于PXA255和JPEG壓縮算法的嵌入式視頻監(jiān)視系統(tǒng)

          基于PXA255和JPEG壓縮算法的嵌入式視頻監(jiān)視系統(tǒng)

          作者: 時間:2009-05-21 來源:網(wǎng)絡(luò) 收藏

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

          圖2 框圖


          采集與處理模塊中,首先要按照要求在linux2.4.19內(nèi)核中加入V4L (video for linux) 的支持項,然后在usb總線中就會出現(xiàn)一些camera的選項,里面就有ov511(支持網(wǎng)眼3000)和stv680(支持MDC-30L數(shù)碼相機)的支持。
          V4L定義了在linux下進行圖像采集的函數(shù)。主要有設(shè)備的open、close、read、write、ioctrl、mmap等對設(shè)備的操作方法,并通過結(jié)構(gòu)體video_device_ stv680_template在內(nèi)核中進行登記,方便在用戶狀態(tài)下進行設(shè)備的各種操作。可以以虛擬內(nèi)存映射方式獲取圖像數(shù)據(jù),主要是調(diào)用mmap內(nèi)存映射函數(shù)stv680_mmap,其定義如下:
          static int stv680_mmap (struct video_device *dev, const char *adr, unsigned long size)
          在該函數(shù)中,利用調(diào)用remap_page_range,將物理地址pos對應(yīng)的虛擬頁面地址page映射到用戶空間中去,從而實現(xiàn)了圖像數(shù)據(jù)從到應(yīng)用程序的轉(zhuǎn)移。對硬件底層的操作,集中在stv680_ioctl函數(shù)中,通過調(diào)用ioctrl對設(shè)備進行控制,其中包括:VIDIOCGCAP、VIDIOCSYNC等控制方式,對攝像頭進行配置、同步等操作。這些控制方式都符合V4L的控制規(guī)范,可以將一般的圖像采集程序不經(jīng)過改動移植到這個驅(qū)動上來。
          對采集上來的每一幀圖像數(shù)據(jù)我們采用。在實際應(yīng)用中,使用Arm_linux下的libjpeg庫模塊,該模塊采用以離散余弦變換(Discrete Cosine Transform,DCT)為基礎(chǔ)的有損,在壓縮比為25:1的情況下,壓縮后還原得到的圖像與原始圖像相比較,非圖像專家難于找出它們之間的區(qū)別。經(jīng)過交叉編譯后,將編譯生成的庫文件libjpeg.so拷貝到了sitsang板的文件系統(tǒng)中,從而使sitsang板支持jpeg壓縮格式的圖形。代碼實現(xiàn)部分的主要流程如下:
          設(shè)置壓縮信息結(jié)構(gòu)體struct jpeg_compress_struct cjpeg,其中保存著圖像原始信息和壓縮信息。其中圖像大小320x240,深度為3,顏色類型為RGB.
          設(shè)置圖像壓縮品質(zhì):jpeg_set_defaults(cjpeg) jpeg_set_quality(cjpeg, quality, TRUE);
          設(shè)置圖像壓縮方法:cjpeg.dct_method = JDCT_FASTEST(使用快速離散dct變換)
          開始壓縮:
          jpeg_start_compress(cjpeg, TRUE);
          ……
          jpeg_write_scanlines(cjpeg, row_ptr, 1);
          ……
          完成壓縮:jpeg_finish_compress(cjpeg); jpeg_destroy_compress(cjpeg)
          在圖像的處理上,本文設(shè)計了簡單并且行之有效的圖像比較判斷程序,來判斷圖像是否發(fā)生變化,并且只有當圖像發(fā)生變換以后,系統(tǒng)才會自動將現(xiàn)場情況上報給監(jiān)控主機。比較函數(shù)cmp_blks設(shè)定一個圖像發(fā)生變化的極限c_limit,然后將一幀圖像分割成12*12個圖像塊(block),對每一個block,將像素之差與c_limit進行比較,如果大于c_limit,則認為該塊圖像發(fā)生了變化,否則沒有變化。在野外無人值守的監(jiān)控環(huán)境中,根據(jù)實驗和經(jīng)驗進行設(shè)定c_limit的值,能夠合理的利用網(wǎng)絡(luò)帶寬進行傳輸并減少系統(tǒng)負擔(dān)。經(jīng)過概確定的變化塊信息可以用于以后圖像跟蹤的擴展功能。
          3 系統(tǒng)的測試與結(jié)論
          通過現(xiàn)場安裝測試,每個終端可以同時支持4臺采集終端的連接與數(shù)據(jù)傳輸,服務(wù)器可以同時支持多達100臺視頻采集終端的數(shù)據(jù)轉(zhuǎn)發(fā),長時間運行效果很好。經(jīng)過圖像預(yù)處理、判斷和壓縮后,傳輸?shù)臄?shù)據(jù)量小,節(jié)省了網(wǎng)絡(luò)傳輸帶寬,適合無線網(wǎng)絡(luò)傳輸。

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

          上一頁 1 2 下一頁

          評論


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