<rt id="m4md3"></rt>
  • <bdo id="m4md3"><meter id="m4md3"></meter></bdo>
  • <label id="m4md3"></label>
      <center id="m4md3"><optgroup id="m4md3"></optgroup></center>
      產(chǎn)品分類

      當前位置: 首頁 > 工業(yè)控制產(chǎn)品 > 樓宇自動化 > CCTV監(jiān)控系統(tǒng) > CCTV監(jiān)控主機

      類型分類:
      科普知識
      數(shù)據(jù)分類:
      CCTV監(jiān)控主機

      嵌入式遠程視頻采集系統(tǒng)的設計與實現(xiàn)

      發(fā)布日期:2022-04-27 點擊率:88

      多媒體通信技術(shù)的發(fā)展為信息的獲取和傳輸提供了豐富的手段,視頻采集是其中不可缺少的重要組成部分,該系統(tǒng)基于S3C2410的ARM9芯片和嵌入式Linux操作系統(tǒng),采用USB攝像頭捕捉視頻,經(jīng)MPEG-4算法壓縮編碼,系統(tǒng)直接與網(wǎng)絡相連,用戶使用標準的網(wǎng)絡瀏覽器和流媒體播放程序即可查看遠程視頻影像。

      1、硬件系統(tǒng)

      系統(tǒng)硬件平臺選用北京博創(chuàng)公司的UP-NETARM2410開發(fā)板,該系統(tǒng)基于ARM9架構(gòu)嵌入式芯片S3C2410,穩(wěn)定工作在202MHz主頻,板載64MB SDRAM 64MB FLASH,主板資源包括:主USB口、從USB口、10M/100M以太網(wǎng)口,觸摸屏、彩色LCD、鍵盤、8個用戶自定義LED數(shù)碼管, A/D,RTC電路,2個串口、1個JTAG通用接口,音頻模塊,支持MPEG4,MP3編解碼,3個168PIN的擴展插座,32位的數(shù)據(jù)總線,保留充分擴展空間。

      其中標配模塊包括:IC卡+PS2模塊、IDE硬盤+CF卡模塊、PCMCIA+SD/MMC模塊。另外可選配模塊有:GPS模塊,GPRS模塊,F(xiàn)PGA模塊,CAN+AD+DA模塊、紅外模塊、藍牙模塊、攝像頭模塊。

      2、軟件系統(tǒng)

      2.1 內(nèi)核配置與USB攝像頭驅(qū)動

      假定已經(jīng)搭建好嵌入式Linux的開發(fā)環(huán)境,下面第一步工作就是USB攝像頭的安裝與驅(qū)動。

      首先檢查Linux Kernel中是否已經(jīng)添加了USB模塊的支持,并且加入Video4Linux支持。

      Multimedia devices→<M>Video For Linux
      Video For Linux→[*]V4L information in proc filesystem

      在主菜單的USB Support下還有各種攝像頭的驅(qū)動,選中將要使用的攝像頭芯片類型。

      <>USB IBM (Xirlink)C-it Camera support<*>USB OV511 Camera support<>USB Philips Cameras
      <>USB SE401 Camera support<>USB STV680(Pencam)Camera support<>USB 3com HomeConnect(akavicam)support

      在USB攝像頭選購時,優(yōu)先考慮Linux內(nèi)核公開支持的攝像頭芯片,不然要額外編寫相應的USB攝像頭驅(qū)動程序,然后進行編譯、安裝。在此選用網(wǎng)眼公司的V3000產(chǎn)品,他采用了OV511的芯片。

      確定USB攝像頭被正常驅(qū)動后,下一步就是使用Video4Linux提供的API函數(shù)集來編寫視頻采集程序。

      2.2 基于V4L設計的視頻采集模塊

      在Linux下,所有外設都被看成是一種特殊的文件,稱為設備文件。系統(tǒng)調(diào)用是內(nèi)核和應用程序之間的接口,而設備驅(qū)動程序則是內(nèi)核和外設之間的接口。他完成設備的初始化和釋放、對設備文件的各種操作和中斷處理等功能,為應用程序屏蔽了外設硬件的細節(jié),使得應用程序可以像普通文件一樣對外設進行操作。

      Linux系統(tǒng)中的視頻子系統(tǒng)Video4Linux為視頻應用程序提供了一套統(tǒng)一的API,視頻應用程序通過標準的系統(tǒng)調(diào)用即可操作各種不同的視頻捕獲設備。Video4Linux向虛擬文件系統(tǒng)注冊視頻設備文件,應用程序通過操作視頻設備文件實現(xiàn)對視頻設備的訪問。

      Linux下與Video4Linux相關設備及用途如表1所示。

      這里主要針對設備文件/dev/video進行視頻捕捉方面的程序設計。

      Linux下視頻采集流程如圖2所示。

      其中用到的主要函數(shù)有:

      Camera_open():用來開啟視頻設備文件,使用前需要首先聲明一個video_device類型的設備文件。
      Camera_get_capability():通過調(diào)用ioctl()函數(shù)取得設備文件的相關信息,并存放到video_capability結(jié)構(gòu)里。
      Camera_get_picture():通過調(diào)用ioctl()函數(shù)取得圖像的相關信息,并且存放到video_picture結(jié)構(gòu)里。
      Camera_close():用來關閉設備文件。
      Camera_grab_image():用來抓取圖像,采用mmap方式,直接將設備文件/dev/video0映射到內(nèi)存,加速文件I/O操作,還可以使多個線程共享數(shù)據(jù)。

      剩下的還有設備初始化、參數(shù)設備等相關函數(shù),不再詳述。

      2.3 視頻壓縮編碼模塊

      獲取圖像數(shù)據(jù)后,可以直接輸出到frameBuffer進行顯示,由于本系統(tǒng)要將采集到的視頻影響通過網(wǎng)絡傳輸出去,所以在傳輸之前要對原始的圖像數(shù)據(jù)進行壓縮編碼,在此選用MPEG-4視頻編解碼方案。和其他標準相比,MPEG-4壓縮比更高,節(jié)省存儲空間,圖像質(zhì)量更好,特別適合在低帶寬條件下傳輸視頻,并能保持圖像的質(zhì)量。

      MPEG-4中基于對象的視頻編碼過程可以分為3步進行:

      (1)從原始視頻流中分割視頻對象。

      (2)對視頻對象進行編碼,對不同視頻對象的運動信息、形狀信息、紋理信息分配不同的碼字。對輸入的任意形狀的VOP序列,用基于塊的混合編碼技術(shù)編碼,處理順序是先IVOP后PVOP,BVOP。在對VOP的形狀信息編碼后,取得任意形狀VOP的采樣,每個VOP劃分為不相交的宏塊,每個宏塊含有4個8×8象素塊進行運動補償以及紋理編碼,已編碼的VOP幀保存在幀存中,在當前VOP幀和已編碼VOP幀之間的計算運動矢量;對將編碼的塊和宏塊,計算他們的運動補償預測誤差;運動補償預測后的IVOP及誤差用8×8塊DCT變換,并進行DCT系數(shù)的量化,然后是游程編碼和熵編碼。

      (3)對各個視頻對象的碼流進行復合,每個視頻對象的形狀、運動紋理信息復合成VOL比特流,各視頻對象視頻流復合成統(tǒng)一的碼流輸出。對視頻流進行壓縮編碼以后,接下來就要實現(xiàn)網(wǎng)絡傳輸部分的功能。

      2.4 JRTPLIB網(wǎng)絡傳輸模塊

      流媒體指的是在網(wǎng)絡中使用流技術(shù)傳輸?shù)倪B續(xù)時基媒體,RTP是目前解決流媒體實時傳輸問題的好辦法,JRTPLIB是一個面向?qū)ο蟮腞TP庫,他完全遵循RFC1889設計,下面講述如何在Linux平臺上運用RTP協(xié)議進行實時流媒體編程。

      (1) 初始化

      在使用JRTPLIB進行實時流媒體數(shù)據(jù)傳輸之前,首先應該生成RTPSession類的一個實例來表示此次RTP會話,然后調(diào)用Create()方法來對其進行初始化操作。RTPSession類的Create()方法只有一個參數(shù),用來指明此次RTP會話所采用的端口號。

      (2) 數(shù)據(jù)發(fā)送

      當RTP會話成功建立起來之后,接下來就可以開始進行流媒體數(shù)據(jù)的實時傳輸了。首先需要設置好數(shù)據(jù)發(fā)送的目標地址,RTP協(xié)議允許同一會話存在多個目標地址,這可以通過調(diào)用RTPSession類的AddDestination()、DeleteDestination()和ClearDestinations()方法來完成。目標地址全部指定之后,接著就可以調(diào)用RTPSession類的SendPacket()方法,向所有的目標地址發(fā)送流媒體數(shù)據(jù)。

      (3) 數(shù)據(jù)接收

      對于流媒體數(shù)據(jù)的接收端,首先需要調(diào)用PollData()方法來接收發(fā)送過來的RTP或者RTCP數(shù)據(jù)報。由于同一個RTP會話中允許有多個參與者(源),因此既可以通過調(diào)用GotoFirstSource()和GotonextSource()方法來遍歷所有的源,也可以通過調(diào)用GotoFisstSourceWithDat()和GotonextSourceWithData()方法來遍歷那些攜帶有數(shù)據(jù)的源。在從RTP會話中檢測出有效的數(shù)據(jù)源之后,接下去就可以調(diào)用RTPSession類的GetNextPacket()方法從中抽取RTP數(shù)據(jù)報,當接收到的RTP數(shù)據(jù)報處理完之后,要及時釋放。

      JRTPLIB為RTP數(shù)據(jù)報定義了3種接收模塊,通過調(diào)用RTPSession類的SetReceiveMode()方法可以設置下列這些接收模式:

      RECEIVEMODE_ALL:缺省的接收模式,所有到達的RTP數(shù)據(jù)報都將被接受;
      RECEIVEMODE_IGNORESOME:除了某些特定的發(fā)送者之外,所有到達的RTP數(shù)據(jù)報都將被接受,而被拒絕的發(fā)送者列表可以通過調(diào)用AddToIgnoreList(),DeleteFromIgnoreList()和ClearIgnoreList()方法來進行設置;
      RECEIVEMODE_ACCEPTSOME:除了某些特定的發(fā)送者之外,所有到達的RTP數(shù)據(jù)報都將被拒絕,而被接受的發(fā)送者列表可以通過調(diào)用AddToAcceptList(),DeleteFromAcceptList和ClearAcceptList()方法來進行設置。

      (4) 控制信息

      JRTPLIB是一個高度封裝后的RTP庫,只要PollData()或者SendPacket()方法被成功調(diào)用,JRTPLIB就能夠自動對達到的RTCP數(shù)據(jù)報進行處理,并且還會需在要的時候發(fā)送RTCP數(shù)據(jù)報,從而能夠確保整個RTP會話過程的正確性。

      在本系統(tǒng)中,使用RTPSession JRTPLIB類庫提供的方法來實現(xiàn)底層的RTP/RTCP操作,并且把他封裝在CrtpTransmitter類中,該類從Media Sink類繼承而來,接收到相應的媒體幀數(shù)據(jù),使用RTPSession類庫的操作把數(shù)據(jù)發(fā)送到網(wǎng)絡上。

      3、結(jié)語

      本系統(tǒng)基于S3C2410平臺和Linux操作系統(tǒng),利用Video4Linux設計采集程序,使用MPEG-4壓縮編碼算法,通過實時流媒體傳輸技術(shù)實現(xiàn)了網(wǎng)絡傳輸,整個系統(tǒng)具有穩(wěn)定可靠、安裝簡便、成本低廉等特點,可擴展應用在工業(yè)控制、視頻會議系統(tǒng)、可視電話、遠程監(jiān)控系統(tǒng)等諸多領域。

      下一篇: 斷路器、隔離開關、接

      上一篇: 索爾維全系列Solef?PV

      推薦產(chǎn)品

      更多
      主站蜘蛛池模板: 色欲色香天天天综合网站| 一本色道久久88—综合亚洲精品| 日韩无码系列综合区| 久久综合日本熟妇| 亚州欧州一本综合天堂网| 色综久久天天综合绕视看 | 国产精品综合视频| 一本久久知道综合久久| 久久综合久久美利坚合众国| 国产成人综合精品| 99久久综合狠狠综合久久一区| 激情综合丝袜美女一区二区| 久久综合综合久久综合| 狠狠色狠狠色综合久久| 丁香五月天综合缴情网| 狠狠色丁香久久婷婷综合蜜芽五月| 亚洲综合色视频在线观看| 亚洲免费综合色在线视频| 色综合久久久久综合体桃花网| 伊人久久大香线蕉综合电影| 色噜噜狠狠狠狠色综合久| 国产91色综合久久免费分享| 久久综合精品国产二区无码| 激情综合一区二区三区| 国产成人亚洲综合| 国产精品综合在线| 九九综合九九综合| 亚洲熟女乱综合一区二区| 一本一本久久a久久精品综合| 亚洲色偷偷综合亚洲AV伊人蜜桃| 色综合久久精品中文字幕首页| 伊人婷婷色香五月综合缴激情| 无码综合天天久久综合网| 色天使亚洲综合在线观看| 亚洲狠狠婷婷综合久久| 婷婷亚洲综合五月天小说在线| 亚洲综合色7777情网站777| 久久久久久久综合综合狠狠| 天天狠狠色综合图片区| 一97日本道伊人久久综合影院| 国产综合无码一区二区三区|