新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 基于Blackfin的智能IP Camera系統(tǒng)設(shè)計

基于Blackfin的智能IP Camera系統(tǒng)設(shè)計

作者: 時間:2014-11-10 來源:網(wǎng)絡(luò) 收藏

  1.背景及概述

本文引用地址:http://2s4d.com/article/265113.htm

  近年來,隨著嵌入式應(yīng)用越來越復(fù)雜,應(yīng)用場合越來越多,特別是多媒體功能在各個領(lǐng)域飛速發(fā)展,高性能計算變得無處不在,從消費電子,網(wǎng)絡(luò)通訊到工業(yè)控制和監(jiān)控,大多數(shù)應(yīng)用都需要更高的數(shù)字信號處理能力。出于成本和設(shè)計難度的考慮,人們傾向于使用單顆芯片完成所有的工作,傳統(tǒng)的處理器和MCU處理器開始以多種形式進行融合:

  1.傳統(tǒng)的MCU+合作方案被集成到一顆芯片封裝內(nèi);或者進一步實現(xiàn)為真正的異構(gòu)多核,可以共享部分甚至全部外部設(shè)備。

  2.以SoC的形式為MCU加上基于固定硬件IP模塊的數(shù)據(jù)處理能力,如一些編解碼器。針對一些固定標準的應(yīng)用。

  3.隨著高端嵌入式處理器頻率突破500MHz并正在挺進1GHz,MCU和平臺開始真正的融合,DSP處理器的外設(shè)接口數(shù)量和控制能力逐步提高,而MCU的帶寬和計算能力特別是軟件多媒體處理能力也越來越強,兩者之間不再有質(zhì)的區(qū)別。

  以上三種融合的形式,實際上互相之間都有借鑒和交叉,從這里開始的未來發(fā)展,DSP和MCU之間,多核處理器的核與核之間,都不再有真正的界限。對于任何應(yīng)用,對應(yīng)的處理器都是靈活的軟件計算能力、高效的硬件IP模塊和相應(yīng)外設(shè)的結(jié)合體,即所謂的“Convergent Platform”(會聚平臺)。

  這樣的處理器平臺,對于嵌入式軟件開發(fā)者提出了更新更高的要求,高級語言編譯器要能夠最大程度的利用硬件細節(jié)來優(yōu)化編譯性能,減少手工優(yōu)化的工作量,保持軟件的通用性;DSP算法開發(fā)人員不僅僅要了解硬件平臺,也要考慮到軟件平臺的架構(gòu)對算法實現(xiàn)和優(yōu)化的影響,例如分離硬件相關(guān)部分和無關(guān)部分以適應(yīng)操作系統(tǒng)的結(jié)構(gòu);而軟件平臺開發(fā)人員也要考慮處理器的細節(jié)以便進行系統(tǒng)優(yōu)化,例如為多核或DMA通道的并行處理抽象出系統(tǒng)接口。硬件設(shè)計者,算法設(shè)計者,系統(tǒng)軟件設(shè)計者之間的界限也在消失,復(fù)合型的嵌入式系統(tǒng)開發(fā)者和團隊才能最適應(yīng)底層硬件平臺的變化。

  在這個DSP/MCU/硬件IP模塊三者融合的大趨勢中,ADI公司的系列處理器就是一個代表產(chǎn)品。從最早的BF53x系列,到目前的增加了圖像處理單元的BF54x系列和低功耗BF52x系列,以及雙核的BF561,都是以同樣的內(nèi)核配置多樣化的帶寬和外設(shè),針對不同的應(yīng)用和市場。在這樣的處理器上選擇和設(shè)計軟件,需要考慮的因素有很多:

  1.如何保持對處理器DSP特性硬件細節(jié)的最大效率使用,以達到最優(yōu)算法性能和并行性。

  2.如何最大程度地保持軟件通用性,避免過多的硬件相關(guān)代碼和匯編代碼。

  3.如何降低軟件平臺開發(fā)成本,是否適合采用開源操作系統(tǒng)或模塊。

  4.系統(tǒng)是否需要實時性能,采用的軟件平臺是否提供這樣的實時性保證。

  這些因素有時候是互相矛盾的,需要考慮具體應(yīng)用的特點和自身的資源,來做一個折衷的最優(yōu)化設(shè)計。

  ADI公司為的軟件平臺做了很多的努力,提供多樣化的軟件生態(tài)環(huán)境。支持uClinux,VDK,uC/OSII,Nucleus等等多種OS/RTOS,基于VDSP開發(fā)工具提供多種免費的音視頻codec,硬件抽象函數(shù)庫及驅(qū)動。在這個基于BF53x的智能監(jiān)控系統(tǒng)中,我們希望最大程度地發(fā)揮芯片處理能力,達到最好的編碼和智能算法能力,所以選擇了一種RTOS - uC/OSII及其網(wǎng)絡(luò)協(xié)議棧作為操作系統(tǒng)平臺。在小型的RTOS中,一般不區(qū)分用戶態(tài)和內(nèi)核態(tài),訪問系統(tǒng)硬件資源的開銷小,中斷和任務(wù)切換時間有實時保證,對內(nèi)存的使用和分配也比較自由,這些特點決定了在RTOS下更容易發(fā)揮Blackfin作為DSP處理器的性能,并能直接使用ADI提供的高性能H264編碼庫;但缺點是對比Linux這樣開源資源比較豐富的操作系統(tǒng),RTOS缺少某些現(xiàn)成的應(yīng)用程序比如HTTP Server,需要更多的開發(fā)投入或第三方資源。

  2.Blackfin 系統(tǒng)架構(gòu)

  整個系統(tǒng)主要包括音視頻采集,智能視頻分析或智能音頻分析,音/視頻編碼,流媒體打包傳輸,系統(tǒng)控制等模塊(如圖1所示)。

  基本系統(tǒng)為Blackfin的視頻接口PPI同數(shù)字視頻流輸入相連來接收視頻信號,而串行的SPORT接口可以連接音頻輸入,音視頻數(shù)據(jù)以專用DMA通道傳送到SDRAM;如果需要智能監(jiān)控,可以根據(jù)需要插入不同的分析模塊;然后軟件編碼器負責對實時采集進來的音視頻進行壓縮,并打成TS(Transport Stream)流來傳輸。整個系統(tǒng)是數(shù)據(jù)流驅(qū)動的,下圖中不同的輸入,分析和編碼模塊可以根據(jù)需要來選擇,每個模塊的輸入和輸出的是符合標準的數(shù)據(jù)流,可以靈活地插入系統(tǒng)數(shù)據(jù)流的不同位置進行處理。一般的Blackfin單核芯片只能同時使用其中的一部分模塊,但雙核芯片如BF561或雙片方案中,可以同時使用所有的模塊。

  

 

  圖1 基于Blackfin 537處理器系統(tǒng)框圖

  2.1 視頻采集和編碼

  Blackfin 系列DSP專門針對高速并行數(shù)據(jù)特別是視頻數(shù)據(jù)集成了并行外圍接口(PPI),在傳統(tǒng)的數(shù)據(jù)總線的基礎(chǔ)上增加了一條專用數(shù)據(jù)吞吐通道。

  PPI接口不僅可以按照BT.601視頻流的“硬件同步”模式工作,還能自動解碼BT.656前同步碼,從而允許無縫連接到多種視頻源和圖像傳感器,與直接存儲器存取(DMA)控制器配合使用,PPI可以在完整的視頻幀信息中只讀入有效的視頻信息,或只有消隱區(qū)域。這樣當不需要完整的視頻幀時顯著節(jié)省了帶寬。另外,PPI可以忽略隔行的BT.656視頻流的所有第二場圖像信息,從而提供了一種很有效的方法用于快速抽取輸入信號。最后,因為PPI本身就可以解碼BT.656視頻流,所以它可以直接連接到流行的類似ADV7183A視頻解碼器。

  IP Camera上主流的編碼標準如H.264,MPEG4等,ADI公司都提供了免費的編碼器軟件。本項目采用H.264視頻壓縮標準,ADI的H.264編碼器性能得到了最大的優(yōu)化,充分利用了片內(nèi)L1 內(nèi)存,數(shù)據(jù)通過DMA來搬移,與處理器的運算并行執(zhí)行。主要的特點有:支持YUV420和UYVY422 (CCIR-656) 視頻輸入格式,輸出是以NAL為單位的基本視頻流;對于H264編碼,支持Baseline Profile和一些Main profile的特性(Interlaced encoding, CABAC),在BF53x上能達到最大實時1/2 D1,BF561上支持D1實時,支持I和P幀,自適應(yīng)CBR碼率控制等。對于不同的應(yīng)用,ADI H.264編碼器的比特率是可調(diào)整的,低比特率下甚至可以在CDMA1x這樣的低帶寬應(yīng)用中實現(xiàn)實時傳輸。

  2.2 智能監(jiān)控

  目前監(jiān)控市場的發(fā)展越來越趨向于智能化,各種視頻或音頻的智能分析算法得到產(chǎn)業(yè)化應(yīng)用,如運動目標檢測和跟蹤,入侵檢測,特殊聲音檢測和定位等等。Blackfin處理器從架構(gòu)到指令集都對多媒體處理有很好的支持,有專用的視頻處理指令,因此特別適合于實現(xiàn)靈活的多媒體智能分析算法。ADI公司推出了“Image Tool Box”智能監(jiān)控軟件包,針對智能監(jiān)控算法中的一些常用和基本函數(shù)做了專門的優(yōu)化,有很好的性能,可以加速上層算法的實現(xiàn)和優(yōu)化。

  一般智能分析的實現(xiàn)是針對未編碼的媒體流進行分析,但也有利用編碼器輸出結(jié)果的算法。本項目因為直接使用ADI公司給定的編碼庫,因此使用前置的智能模塊直接分析輸入的媒體流,并輸出結(jié)果。音視頻的智能處理種類比較多,并在不斷地改進,所以用一般都用高性能DSP來實現(xiàn)。在Blackfin上目前有多種智能處理模塊,如魚眼矯正,運動物體檢測及基于運動檢測的上層算法如遺留物檢測、入侵檢測,槍聲檢測和定位等等。根據(jù)智能模塊的輸出結(jié)果,系統(tǒng)控制和編碼部分都可以做相應(yīng)的智能處理,如勾勒運動物體邊框,調(diào)高編碼器分辨率,根據(jù)音源位置調(diào)整攝像頭方向,等等。這些模塊一般都有比較標準的輸入輸出接口,便于二次開發(fā)中的系統(tǒng)集成。

  2.3 媒體流傳輸

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

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

  2.4 軟件架構(gòu)

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

  軟件架構(gòu)分為音視頻采集,智能分析,編碼打包和網(wǎng)絡(luò)傳輸,系統(tǒng)控制等模塊,每個模塊由不同優(yōu)先級的任務(wù)負責,這非常有利于系統(tǒng)的集成和模塊化設(shè)計。模塊之間相互獨立,用信號量進行同步,模塊之間的數(shù)據(jù)結(jié)構(gòu)都設(shè)計成雙緩沖或者多緩沖,保證IO模塊和運算模塊并行執(zhí)行。對于高系統(tǒng)負荷下的容錯,程序和數(shù)據(jù)結(jié)構(gòu)也考慮在內(nèi),偶然出現(xiàn)的丟幀現(xiàn)象不會影響系統(tǒng)的繼續(xù)運行,并且向系統(tǒng)控制部分報告錯誤。

tcp/ip相關(guān)文章:tcp/ip是什么


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

上一頁 1 2 下一頁

關(guān)鍵詞: Blackfin IP Camera DSP

評論


相關(guān)推薦

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

關(guān)閉