新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于Blackfin的智能IP Camera系統設計和優化

        基于Blackfin的智能IP Camera系統設計和優化

        作者:楊曄,ADI DSP | 嵌入式處理器高級技術應用工程師;張鐵虎,ADI視頻監控技術市場經理 時間:2008-09-01 來源:EDN China 收藏

          媒體流傳輸

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

          IP Camera的主要用途就是通過網絡實時傳輸遠程的視頻信息,本項目采用傳輸流(TS)通過UDP或上層的RTP協議來傳輸。傳送流是根據ITU-T Rec.H.222.0 | ISO/IEC 13818-2和ISO/IEC 13818-3協議而定義的一種數據流,其目的是為了在有可能發生嚴重錯誤的環境下進行一道或多道程序的編碼數據的傳輸和存儲。TS主要應用于實時傳送的節目,比如實時廣播的電視節目,主要特點就是要求從視頻流的任一片段開始都是可以獨立解碼的。所以在接收端可以隨時接入。目前視頻監控領域還沒有統一的媒體流標準,但采用TS over RTP/UDP這一標準有利于將來的系統整合。的一些第三方提供了完整的RTP協議棧產品,網絡上也有一些開源的實例可供參考。

          數據鏈路方面,對于壓縮視頻傳輸,一般的網絡接口芯片都能滿足帶寬要求,但是在評估網絡性能的時候,占用比也是一個非常重要的標準。BF53x系列中的BF537芯片有內置的10/100M MAC接口,并有專用的DMA 數據通道,因此傳輸和占用比性能都非常好,在基于BF537的IP Camera上每1Mbps的網絡流量只消耗約1%的性能,例如傳輸 H.264 D1分辨率的監控碼流,消耗處理器不到10MIPS。  

          軟件架構

          mC/OSII是Blackfin所支持的RTOS之一,在高速的Blackfin處理器上有很強的硬實時性能,OS中斷響應時間約為110 cycles(600MHz下約0.18ms)。系統首先創建一個主任務(main task),負責系統的初始化和創建其他的模塊任務。各模塊任務獨立運行,處理自己的輸入和輸出數據流,模塊之間的耦合程度較低,可以靈活的取舍。網絡協議棧方面,Blackfin上也有多種選擇,除了各商業RTOS配套提供的TCP/IP協議棧外,LWIP作為開源網絡協議棧中的佼佼者,也在Blackfin處理器上有移植版本。本項目采用了mC/OSII配套的mC/IP協議棧。

          軟件架構分為音視頻采集,智能分析,編碼打包和網絡傳輸,系統控制等模塊,每個模塊負責不同優先級的任務,這非常有利于系統的集成和模塊化設計。模塊之間相互獨立,用信號量進行同步,模塊之間的數據結構都設計成雙緩沖或者多緩沖,保證I/O模塊和運算模塊并行執行。對于高系統負荷下的容錯,程序和數據結構也考慮在內,偶然出現的丟幀現象不會影響系統的繼續運行,并且向系統控制部分報告錯誤。

          表1列出了系統中各模塊的來源。

           系統優化

          在系統中,一旦算法確定下來,實現過程中的優化思路一般也是固定的,首先利用編譯器的一些優化開關和手段,其次對算法做分析,找出關鍵代碼和數據,對關鍵部分做一些手工的調整,如改寫成匯編等。但在實現一個包括多路輸入輸出,多種算法并行的完整的系統時,如何達到整體運行的最優化,除了傳統的算法優化外,還需要從系統的角度考慮一些因素。


          系統帶寬的最大化和最優化

          在這樣的一個復雜系統中,視頻和音頻數據的多路輸入輸出帶來了沖突和延遲,對片外內存的使用效率有很大影響。Blackfin的SDRAM控制器支持多Bank的數據并行傳輸,因此我們要盡量把不同通道的I/O數據放在內存的不同Bank上。因此在音視頻和網絡數據結構的設計上,不光要保證高效的同步,還要利用Blackfin開發工具提供的特性把數據分散在不同的Bank上。


          片內L1內存的高效分配

          傳統上,處理器內部的L1高速內存可以直接訪問,存放關鍵代碼和數據,提高算法運行效率。而MCU的L1一般全部用來做Cache,軟件不能直接控制。在Blackfin等高性能處理器上,L1可以靈活地配置成Cache或者直接訪問。在一個完整的系統中,我們要兼顧到各個模塊和操作系統本身,L1內存一部分用作Cache,以保證整體cache命中率;另一部分作為SRAM用于算法的關鍵模塊。這里需要做一些反復的調整和測試,來找出一個最優化的L1配置方案,最終目的是達到L1 內存使用效率(命中率)最大。


          最大效率地使用DMA通道

          越來越多的處理器為I/O接口提供專用的DMA通道,以減輕處理器做數據輸入輸出的負擔。Blackfin上除了音視頻接口的DMA外,還有專用的內存DMA通道。但是要最優化地使用DMA,最重要的是使用乒乓緩沖,使處理器和DMA通道流水化工作。在數據輸入,算法內部的內存DMA,數據輸出等每個環節上都要使用DMA和乒乓緩沖,才能保證系統效率最高。這需要每個驅動和軟件模塊都支持這樣的數據結構和運行模型。

          綜合起來,新型處理器上往往集成了多種提高性能的機制,軟件系統優化的思路,就是保證系統總帶寬(如多總線,多DMA通道)和總運算單元(如多核,多乘法器)的并行化、流水化,這需要開發人員從系統和應用不同的層面來保證。


          性能分析

          系統使用的RTOS帶來的額外開銷主要就是定時為10ms的Timer Tick,可以忽略不計。而由于BF537高超的網絡性能,網絡傳輸所占用的處理器時間也非常小。主要的處理器時間消耗在音視頻的智能分析和編碼上。

          本項目可以運行在單核或雙核Blackfin平臺上,接收端用開源項目Video Lan Client(VLC)來接收并播放。對于單周期指令集的600MHz Blackfin內核,我們一般用600MIPS表示單核的總處理器能力,表2列出的部分系統模塊消耗處理器能力也用MIPS表示。

          從上面的性能列表可以看出,對于系統中可以使用的每一個模塊,都可以有一個不同參數下的性能分析,在此基礎上,使用不同性能的處理器,不同的模塊,不同的編碼格式,甚至不同的幀率。我們可以針對各種應用組合出不同的系統,實現產品的差異化。比如我們可以完全運行智能處理算法,只在必要的時候啟動編碼模塊發送關鍵部分的媒體流;也可以平時以低碼率、低幀率運行編碼模塊,由智能模塊動態控制提高關鍵幀的碼率和幀率。這樣的智能監控系統,會更加實用化,最大程度地減輕人工負擔。

          小結

          未來處理器的發展,以高計算性能、硬件IP協處理、多核、面向應用等特點,軟件平臺和軟件開發人員需要適應這樣的變化和特點,正向著智能化方向快速發展的監控領域,正需要這樣的軟硬件平臺提供支持。Blackfin處理器家族作為新一代處理能力和控制能力融合處理器的代表,需要設計更新更完善的軟件平臺與其相配合,才能充分發揮其性能和靈活性,既能最快滿足市場的需要,又能保證各廠商之間的區別和創新。同時公司及其合作伙伴提供多樣化的工具和支持,保證客戶能夠快速、低成本地開發出市場需要的各種產品。

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

        上一頁 1 2 下一頁

        關鍵詞: 嵌入式 處理器 DSP ADI

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 石狮市| 营山县| 乃东县| 于田县| 周至县| 阳高县| 玉门市| 英超| 金沙县| 云浮市| 大洼县| 永年县| 垣曲县| 邵东县| 福清市| 普陀区| 灵武市| 柞水县| 凌源市| 泰和县| 昌黎县| 开原市| 濮阳县| 区。| 正镶白旗| 江北区| 镇宁| 时尚| 华阴市| SHOW| 靖远县| 萨嘎县| 武威市| 高邑县| 长海县| 松阳县| 乐平市| 宝山区| 五寨县| 凤冈县| 会理县|