王曉衛(wèi)+樊海榮+李明哲
摘 要: 針對BF561視頻處理系統(tǒng)中視頻實時采集和顯示這一基礎(chǔ)問題,從軟硬件兩個方面對以ADSP?BF561為核心的視頻處理系統(tǒng)中的采集和輸出模塊的設(shè)計和開發(fā)方法進行描述。該設(shè)計方案在分析系統(tǒng)硬件結(jié)構(gòu)和所采集的視頻信號格式的基礎(chǔ)上,通過對視頻輸入/輸出工作流程以及BF561片上外設(shè)資源的合理安排和配置,保證視頻傳輸?shù)倪B續(xù)性,實現(xiàn)了視頻圖像的實時采集和顯示,為視頻處理系統(tǒng)的工作奠定了基礎(chǔ)。
關(guān)鍵詞: BF561芯片; 視頻采集; 視頻顯示; 并行通信接口; 直接存儲器存取
中圖分類號: TN919?34; TP391 文獻標(biāo)識碼: A 文章編號: 1004?373X(2014)18?0015?04
Design and development of real?time video acquisition and display system
based on ADSP?BF561
WANG Xiao?wei1, FAN Hai?rong2, LI Ming?zhe1
(1. Department of Avionics and Arms Engineering, Army Aviation Institute, Beijing 101123, China;
2. Training Department, Army Aviation Institute, Beijing 101123, China)
Abstract: Tin order to realize the real?time video acquisition and display in the BF561video processing system, the design and developing method of the acquisition and output modules in the video processing system based on ADSP?BF561 are described in the aspects of hardware and software. According to the analysis of the system hardware architecture and video signal format, the design scheme ensured the continuity of video transmission, realized the real?time acquisition and display of video images, and laid out a foundation for the development of video processing system through the reasonable arrangement and configuration of video input/output working flow management and the peripheral resource on BF 561.
Keywords: ADSP?BF561; video acquisition; video display; parallel communication interface; direct memory access
0 引 言
ADSP?BF561處理器是美國模擬器件公司推出的針對多媒體和通信應(yīng)用方面的一款高性能產(chǎn)品,擁有2個運算速度達600 MHz的DSP內(nèi)核,具有豐富的外設(shè)接口,且內(nèi)部集成有兩個并行外部接口(Parallel Peripheral Interface,PPI),為同時進行圖像采集、處理和顯示提供了一個系統(tǒng)級片上解決方案[1?2]。
本文針對BF561視頻處理系統(tǒng)中視頻實時采集和顯示這一基礎(chǔ)問題,從軟硬件兩個方面提出了設(shè)計解決方案。該方案在充分利用ADSP?BF561片上豐富外設(shè)接口的基礎(chǔ)上,通過對PPI和DMA控制器以及SDRAM的合理配置,有效解決了高速外設(shè)數(shù)據(jù)塊的連續(xù)傳輸和處理問題,保證視頻傳輸?shù)倪B續(xù)性,實現(xiàn)了整個系統(tǒng)實時采集和顯示。
1系統(tǒng)硬件設(shè)計方案
整個視頻采集顯示系統(tǒng)的核心是基于ADSP?BF561的嵌入式硬件平臺,圖1為整個硬件平臺的系統(tǒng)框圖。系統(tǒng)由Analog Device公司的ADSP?BF561、視頻解碼芯片ADV7181B、視頻編碼芯片ADV7171芯片、CCD攝像頭以及顯示器組成。CCD攝像頭獲取的是模擬視頻信號,其必須通過電視解碼和A/D變換后才能進入DSP處理系統(tǒng)。ADV7181B是一款綜合視頻解碼器,它能夠自動將一種兼容國際標(biāo)準(zhǔn)NTSC或PAL的模擬視頻基帶信號轉(zhuǎn)換為另一種兼容16位/8位CCIR601/CCIR656的YCrCb型4∶2∶2或4∶1∶1數(shù)字視頻信號[3?5]。其靈活的數(shù)字式輸出接口能夠在基于緩沖器結(jié)構(gòu)和行鎖時鐘的系統(tǒng)中完成視頻解碼和轉(zhuǎn)換功能。另一方面,ADSP?BF561提供了兩個可直接與并行A/D和D/A轉(zhuǎn)換器、符合ITU656標(biāo)準(zhǔn)的視頻編碼和解碼器以及其他通用外設(shè)連接的多功能并行接口(PPI)。在ITU?656模式下,PPI提供8或10位視頻數(shù)據(jù)的接收和解析。因本系統(tǒng)將ADSP?BF561提供的兩個多功能并行接口PPI0和PPI1分別直接與視頻編解碼芯片相連,其中由視頻輸入設(shè)備CCD攝像頭采集的圖像經(jīng)ADV7181B解碼后和ADSP?BF5611的PPI0連接,PPI1通過ADV7171編碼后由視頻輸出設(shè)備顯示器顯示。
圖1 基于BF561的視頻處理系統(tǒng)功能框圖
2 系統(tǒng)軟件設(shè)計方案
BF561擁有兩個運算速度高達600 MHz的DSP內(nèi)核,每個內(nèi)核都各自擁有獨立的乘法器和ALU,專門的視頻處理硬件單元和視頻處理指令。為了節(jié)約內(nèi)核開銷,方便后期在空閑的內(nèi)核進行相關(guān)的視頻處理工作,方案中將視頻的采集和輸出工作都集中由CoreB來實現(xiàn),CoreA暫不處理具體工作。
嵌入式視頻系統(tǒng)集成有視頻采集、處理(根據(jù)系統(tǒng)的要求處理方法各異)及顯示功能,而其中視頻的采集及顯示功能是保證系統(tǒng)正常工作的關(guān)鍵性基礎(chǔ)性問題之一。本文將重點對這一問題的關(guān)鍵技術(shù)要點進行討論,以期在保證所采集到的各幀視頻數(shù)據(jù)完整、正確的前提下,實現(xiàn)顯示畫面的連續(xù)性,并盡量降低丟幀率以增強其后處理的精確度。
2.1 視頻采集方案
基于BF561的視頻系統(tǒng)采集過程如下:CCD攝像頭每采集一幀模擬視頻數(shù)據(jù)(PAL制)通過同軸電纜接入到視頻解碼器ADV7181B內(nèi)部,經(jīng)過A/D采樣視頻解碼,輸出ITU?656格式的視頻信號,最后通過PPI0口,傳給BF561,在該過程中所要解決的關(guān)鍵問題如下:
(1) 視頻數(shù)據(jù)存儲位置的設(shè)定。由于ITU?656格式PAL制式的圖像大小為1 728×625 ≈1 080 000 B,約為1 055 KB,而BF561的片內(nèi)存儲空間最大為132 KB,因此BF561的片內(nèi)存儲器無法完整存放1幀數(shù)據(jù)。本方案中擴展了一個大小為64 MB外部存儲器SDRAM。
(2) 視頻數(shù)據(jù)傳輸方式的選擇。PPI接口專為高速設(shè)備優(yōu)化設(shè)計,其不支持直接讀/寫端口,因此方案中使用PPI端口所具有的DMA傳輸能力,將數(shù)據(jù)由并行串口PPI0通過DMA搬移傳送至預(yù)先在片外SDRAM中開辟的一幀大的固定數(shù)據(jù)存儲區(qū)中,最大限度地減少DSP內(nèi)核開銷完成數(shù)據(jù)的傳輸。
(3) 相關(guān)寄存器的配置。PPI0和DMA控制器的配合使用實現(xiàn)了視頻數(shù)據(jù)的實時采集,為保證傳輸?shù)恼_性,必須合理設(shè)置相關(guān)寄存器。
對PPI編程需要設(shè)置的寄存器有PPI控制寄存器(PPIx_CONTROL)、PPI狀態(tài)寄存器(PPIx_STATUS)、延時數(shù)量寄存器(PPIx_DELAY)、傳輸計數(shù)寄存器(PPIx_COUNT)和每幀線路寄存器(PPIx_FRAME)。其中延時數(shù)量寄存器和傳輸計數(shù)寄存器只在GP模式下有效[6?8],而本方案采用的是ITU?656格式的輸入輸出模式,因此只需對PPI控制寄存器和每幀線路寄存器進行配置即可。字母“x”表示所使用的PPI通道,其值可以為0或1,在視頻采集時其值為0,輸出時其值為1。
基于DMA的視頻傳輸方式可以在CPU運行指令的同時從外部存儲器或設(shè)備中存取數(shù)據(jù),也可以在CPU不參與的情況下,由DMA控制器直接進行數(shù)據(jù)傳輸,有效降低傳輸對系統(tǒng)實時性的影響。Blackfin561處理器的DMA控制器同時支持1D和2DDMA傳輸,使用該方式時,主要設(shè)置的寄存器有DMA控制寄存器(DMAx_y_CONFIG),開始地址寄存器(DMAx_y_
START_ADDR),X數(shù)目寄存器(DMAx_y_X_COUNT)、Y數(shù)目寄存器(DMAx_y_Y _COUNT)、X增量寄存器(DMAx_y_X_MODIFY)、Y增量寄存器(DMAx_y_Y_
MODIFY)、中斷狀態(tài)寄存器(DMAx_y_IRQ_STATUS)、外設(shè)映射寄存器(DMAx_y_PERIPHERAL_MAP)、描述符寄存器(DMAx_y_ NEXT_DESC_PTR)。在DMAx_y中,字母“x”表示所使用的DMA控制器其值可以為1或2。DMA1或DMA2控制器都可以實施具體的獨立于處理器活動的數(shù)據(jù)傳輸,每個控制器都有12個外設(shè)DMA通道和4個存儲器DMA通道,但連接到DMA1控制器上的外設(shè)支持32?bit數(shù)據(jù)傳輸,而連接到控制器上的外設(shè)僅支持16?bit的數(shù)據(jù)傳輸。為提高數(shù)據(jù)傳輸速度,本方案使用DMA1控制器,即字母“x”的取值設(shè)為1。字母“y”表示一個特定的有DMA能力的外設(shè),這些外設(shè)有PPI0,PPI1,SPORT0,SPORT1,UART等,本方案使用到的有PPI0和PPI1。視頻數(shù)據(jù)采集時,由于使用的是通道PPI0,因此字母“y”的取值為0,而輸出時,使用的是通道PPI1,因此字母“y”的取值為1。
ADSP?BF561 DMA控制器支持典型DMA操作包括:Stop Mode,單一的、傳輸完成時停止的線性緩沖區(qū);Autobuffer Mode,自動刷新循環(huán)緩沖區(qū),當(dāng)全部或部分緩沖區(qū)滿時中斷;Descrptor Array Mode,一維或二維DMA,使用描述子數(shù)組;Descrptor List Mode,二維DMA,使用一個描述子陣列,僅指定公共頁內(nèi)的基DMA地址[4]。為保證連續(xù)采集不斷幀,解決傳統(tǒng)的采集一幀顯示一幀的模式出現(xiàn)的閃屏情況,本設(shè)計中使用基于描述符的DMA傳輸方式,并將最后一個指向首塊的頭地址,即第第四種方式。基于描述符的DMA傳輸需要用存放在存儲器內(nèi)的一組參數(shù)來初始化一個DMA序列。這種傳輸允許多個DMA系列鏈接在一起。在基于描述符的DMA操作中,一個DMA通道可以通過編程自動建立起來,并可在當(dāng)前序列完成后開始另一個DMA傳輸。鑒于對視頻數(shù)據(jù)傳輸大小和方向的靈活性的要求,本方案使用基于descriptor DMA 模式進行傳輸。
本系統(tǒng)在采集顯示時,一方面DMA會向SDRAM寫入視頻數(shù)據(jù),另一方面,DMA又會不斷的讀取SDRAM中顯示區(qū)域的內(nèi)容,很明顯在進行大量寫操作的時候?qū)斐蓢?yán)重的SDRAM的讀/寫沖突,進而會影響DMA的傳輸,造成顯示出錯。為避免這種現(xiàn)象的出現(xiàn),本方案在SDRAM的3個不同bank上開辟了3個存儲空間,分別為sFrame0,sFrame1和 sFrame2。使用3個頭尾相連的描述鏈表控制PPI_DMA依次傳輸數(shù)據(jù)到3個緩沖區(qū)中,然后利用系統(tǒng)提供的中斷機制,由DMA狀態(tài)為觸發(fā)中斷,使得DMA每讀完或傳送完一幀數(shù)據(jù)后便可以產(chǎn)生一個相應(yīng)的中斷,并在中斷服務(wù)程序內(nèi)將采集的幀數(shù)加1。這種3級緩沖操作的最大特點是通過對當(dāng)前輸入視頻SDRM和輸出視頻SDRAM的相互配合,將采集到的視頻流沒有停頓的送到了顯示的PPI_DMA 端,滿足了對視頻流進行流水線式處理的需要。系統(tǒng)運行的時序如圖2所示。
圖2 系統(tǒng)處理的時序圖
PPI0每采集1幀數(shù)據(jù)中斷1次,在中斷服務(wù)程序中對當(dāng)前采集的視頻圖像存放位置進行標(biāo)記,以便對CoreA對其進行實時處理。
2.2 視頻輸出設(shè)計方案
為保證視頻輸出時所采集到的視頻數(shù)據(jù)的完整性,輸出DMA擬采用stop模式。但考慮在stop模式下,需要重新進行DMA、PPI的初始化等工作,而系統(tǒng)對實時性的要求又比較高,因此輸出時同樣采用描述子方式,與輸入描述子長度為4相比,輸出描述子的長度變?yōu)?。輸出描述子的9個變量定義如下:從低到高分別表示為下一個描述符指針寄存器地址的高16位(NDPL),下一個描述符指針寄存器地址的高16位(NDPH),輸出地址的低16位(SAL),輸出地址的高16位(SAH),配置寄存器(DMACFG)、X_COUNT寄存器的數(shù)值(XCNT)、Y _COUNT寄存器的數(shù)值(YCNT)、Y_MODIFY寄存器的數(shù)值(YMOD)[9?10]。本方案中取值分別為0,0,0,0,0x7915,864,2,625,2。每采集完一幀圖像后即視頻采集的中斷后,手動改變輸出視頻的地址,即通過改變輸出描述子的第2,3位的標(biāo)志量SAL, SAH即可。
2.3 視頻輸入/輸出整體設(shè)計方案
視頻輸入/輸出整體設(shè)計方案見圖3。
圖3 coreB的工作流程圖
本方案可以分為以下4個步驟:
(1) 視頻輸入/輸出參數(shù)初始化及啟動。首先對視頻編解碼芯片ADV7171,ADV7181B進行初始化,以及視頻采集、輸出相關(guān)參數(shù)進行設(shè)定,然后啟動ADV7181B,ADV7171進行視頻的輸入和輸出。
(2) 視頻采集。視頻存儲區(qū)域為在SDRAM中開辟的3個緩沖區(qū)域,當(dāng)采集完1幀圖像后,根據(jù)幀序列號,自動存入將其存入相應(yīng)的存儲區(qū)域。
(3) 視頻輸出。采集并存入1幀圖像在相應(yīng)SDRAM區(qū)后,改變ADV7171的圖像輸出地址,顯示采集的圖像。
(4) 退出視頻輸入/輸出模塊。程序接收到“停止”指令,退出。
3 實驗結(jié)果與分析
圖像采集/顯示模塊部分主要用于實時采集CCD捕獲的視頻,將之放置在相應(yīng)的SDRAM區(qū)域中,最后再將其顯示出來。該模塊是視頻處理模塊的基礎(chǔ),其測試可以分為圖像采集和圖像顯示兩個部分來做測試。
3.1 圖像采集功能的測試
主要用來驗證系統(tǒng)采集圖像通路的正確性,所開發(fā)的嵌入式視頻系統(tǒng)將采集的圖像分別放置在sFrame0, sFrame1和 sFrame2所命名的SDRAM區(qū)域中。對實驗室中的場景進行采集測試,各存儲區(qū)域的存儲圖像如圖4 (a)~(c)所示。從圖中可以看出系統(tǒng)能很好的實現(xiàn)圖像的采集功能,并按照ITU?656的PAL制式,分為上下兩場存儲在相應(yīng)的存儲區(qū)域中。三個首尾相連的環(huán)形存儲圖像方式有效防止了后續(xù)視頻處理模塊在進行視頻處理時漏幀情況的發(fā)生。
3.2 圖像顯示功能的測試
為實時的查看跟蹤效果,圖像必須能夠?qū)崟r地輸出出來,對輸出通路進行測試,結(jié)果如圖4(d)所示。從圖中看出所開發(fā)的嵌入式視頻系統(tǒng)能夠?qū)崟r采集到圖像在監(jiān)視器中顯示出來。
4 結(jié) 論
本文設(shè)計了基于ADSP?BF561的嵌入式視頻處理系統(tǒng)的視頻采集和顯示方案,該方案以ADSP?BF561為核心,在充分使用BF561片上豐富外設(shè)接口的同時,通過對視頻輸入/輸出DMA工作方式的合理配置,實現(xiàn)了視頻圖像的實時采集和顯示,為視頻處理系統(tǒng)的工作奠定了基礎(chǔ)。
圖4 采集和顯示的實驗結(jié)果
參考文獻
[1] 張彬,胡棟.基于ADSP?BF561的實時視頻采集方案的實現(xiàn)[J].電視技術(shù),2009,33(12):28?31.
[2] 劉峰.視頻圖像編碼技術(shù)及國際標(biāo)準(zhǔn)[M].北京:北京郵電大學(xué)出版社,2005.
[3] 陳峰.Blackfin 系列DSP 原理與系統(tǒng)設(shè)計[M].北京:電子工業(yè)出版社,2004.
[4] 王曉衛(wèi),孫軍濤.基于ADSP?BF561的英文字符庫設(shè)計[J].單片機與嵌入式系統(tǒng)應(yīng)用,2011(7):16?19.
[5] 王曉衛(wèi),吳曉中,王宏宇.基于ADSP?BF561的圖像平移算法的設(shè)計[J].現(xiàn)代電子技術(shù),2011,34(10):59?61.
[6] Analog Devices Inc. ADSP?BF561 Blackfin processor hardware reference, rev 3.0 [EB/OL]. [2012?12?20]. http://www.bdtic.com/DownLoad.
[7] Analog Devices Inc. Video framework consideration for image processing on Blackfin processors (EE?276) [EB/OL]. [ 2010?10?22]. http://www.wenku.baidu.com/link.
[8] Analog Devices Inc. Visual Dsp++5.0 device drivers and system services manual for Blackfin processors, revision 3.0 [EB/OL]. [2011?08?30]. http: www.txt.wenku.baidu.com.
[9] 吳敏淵.ADSP系列數(shù)字信號處理器原理[M].北京:電子工業(yè)出版社,2002.
[10] 曹小秋.ADI Blackfin系列DSP處理器實驗指導(dǎo)書[M].北京:電子工業(yè)出版社,2008.
圖2 系統(tǒng)處理的時序圖
PPI0每采集1幀數(shù)據(jù)中斷1次,在中斷服務(wù)程序中對當(dāng)前采集的視頻圖像存放位置進行標(biāo)記,以便對CoreA對其進行實時處理。
2.2 視頻輸出設(shè)計方案
為保證視頻輸出時所采集到的視頻數(shù)據(jù)的完整性,輸出DMA擬采用stop模式。但考慮在stop模式下,需要重新進行DMA、PPI的初始化等工作,而系統(tǒng)對實時性的要求又比較高,因此輸出時同樣采用描述子方式,與輸入描述子長度為4相比,輸出描述子的長度變?yōu)?。輸出描述子的9個變量定義如下:從低到高分別表示為下一個描述符指針寄存器地址的高16位(NDPL),下一個描述符指針寄存器地址的高16位(NDPH),輸出地址的低16位(SAL),輸出地址的高16位(SAH),配置寄存器(DMACFG)、X_COUNT寄存器的數(shù)值(XCNT)、Y _COUNT寄存器的數(shù)值(YCNT)、Y_MODIFY寄存器的數(shù)值(YMOD)[9?10]。本方案中取值分別為0,0,0,0,0x7915,864,2,625,2。每采集完一幀圖像后即視頻采集的中斷后,手動改變輸出視頻的地址,即通過改變輸出描述子的第2,3位的標(biāo)志量SAL, SAH即可。
2.3 視頻輸入/輸出整體設(shè)計方案
視頻輸入/輸出整體設(shè)計方案見圖3。
圖3 coreB的工作流程圖
本方案可以分為以下4個步驟:
(1) 視頻輸入/輸出參數(shù)初始化及啟動。首先對視頻編解碼芯片ADV7171,ADV7181B進行初始化,以及視頻采集、輸出相關(guān)參數(shù)進行設(shè)定,然后啟動ADV7181B,ADV7171進行視頻的輸入和輸出。
(2) 視頻采集。視頻存儲區(qū)域為在SDRAM中開辟的3個緩沖區(qū)域,當(dāng)采集完1幀圖像后,根據(jù)幀序列號,自動存入將其存入相應(yīng)的存儲區(qū)域。
(3) 視頻輸出。采集并存入1幀圖像在相應(yīng)SDRAM區(qū)后,改變ADV7171的圖像輸出地址,顯示采集的圖像。
(4) 退出視頻輸入/輸出模塊。程序接收到“停止”指令,退出。
3 實驗結(jié)果與分析
圖像采集/顯示模塊部分主要用于實時采集CCD捕獲的視頻,將之放置在相應(yīng)的SDRAM區(qū)域中,最后再將其顯示出來。該模塊是視頻處理模塊的基礎(chǔ),其測試可以分為圖像采集和圖像顯示兩個部分來做測試。
3.1 圖像采集功能的測試
主要用來驗證系統(tǒng)采集圖像通路的正確性,所開發(fā)的嵌入式視頻系統(tǒng)將采集的圖像分別放置在sFrame0, sFrame1和 sFrame2所命名的SDRAM區(qū)域中。對實驗室中的場景進行采集測試,各存儲區(qū)域的存儲圖像如圖4 (a)~(c)所示。從圖中可以看出系統(tǒng)能很好的實現(xiàn)圖像的采集功能,并按照ITU?656的PAL制式,分為上下兩場存儲在相應(yīng)的存儲區(qū)域中。三個首尾相連的環(huán)形存儲圖像方式有效防止了后續(xù)視頻處理模塊在進行視頻處理時漏幀情況的發(fā)生。
3.2 圖像顯示功能的測試
為實時的查看跟蹤效果,圖像必須能夠?qū)崟r地輸出出來,對輸出通路進行測試,結(jié)果如圖4(d)所示。從圖中看出所開發(fā)的嵌入式視頻系統(tǒng)能夠?qū)崟r采集到圖像在監(jiān)視器中顯示出來。
4 結(jié) 論
本文設(shè)計了基于ADSP?BF561的嵌入式視頻處理系統(tǒng)的視頻采集和顯示方案,該方案以ADSP?BF561為核心,在充分使用BF561片上豐富外設(shè)接口的同時,通過對視頻輸入/輸出DMA工作方式的合理配置,實現(xiàn)了視頻圖像的實時采集和顯示,為視頻處理系統(tǒng)的工作奠定了基礎(chǔ)。
圖4 采集和顯示的實驗結(jié)果
參考文獻
[1] 張彬,胡棟.基于ADSP?BF561的實時視頻采集方案的實現(xiàn)[J].電視技術(shù),2009,33(12):28?31.
[2] 劉峰.視頻圖像編碼技術(shù)及國際標(biāo)準(zhǔn)[M].北京:北京郵電大學(xué)出版社,2005.
[3] 陳峰.Blackfin 系列DSP 原理與系統(tǒng)設(shè)計[M].北京:電子工業(yè)出版社,2004.
[4] 王曉衛(wèi),孫軍濤.基于ADSP?BF561的英文字符庫設(shè)計[J].單片機與嵌入式系統(tǒng)應(yīng)用,2011(7):16?19.
[5] 王曉衛(wèi),吳曉中,王宏宇.基于ADSP?BF561的圖像平移算法的設(shè)計[J].現(xiàn)代電子技術(shù),2011,34(10):59?61.
[6] Analog Devices Inc. ADSP?BF561 Blackfin processor hardware reference, rev 3.0 [EB/OL]. [2012?12?20]. http://www.bdtic.com/DownLoad.
[7] Analog Devices Inc. Video framework consideration for image processing on Blackfin processors (EE?276) [EB/OL]. [ 2010?10?22]. http://www.wenku.baidu.com/link.
[8] Analog Devices Inc. Visual Dsp++5.0 device drivers and system services manual for Blackfin processors, revision 3.0 [EB/OL]. [2011?08?30]. http: www.txt.wenku.baidu.com.
[9] 吳敏淵.ADSP系列數(shù)字信號處理器原理[M].北京:電子工業(yè)出版社,2002.
[10] 曹小秋.ADI Blackfin系列DSP處理器實驗指導(dǎo)書[M].北京:電子工業(yè)出版社,2008.
圖2 系統(tǒng)處理的時序圖
PPI0每采集1幀數(shù)據(jù)中斷1次,在中斷服務(wù)程序中對當(dāng)前采集的視頻圖像存放位置進行標(biāo)記,以便對CoreA對其進行實時處理。
2.2 視頻輸出設(shè)計方案
為保證視頻輸出時所采集到的視頻數(shù)據(jù)的完整性,輸出DMA擬采用stop模式。但考慮在stop模式下,需要重新進行DMA、PPI的初始化等工作,而系統(tǒng)對實時性的要求又比較高,因此輸出時同樣采用描述子方式,與輸入描述子長度為4相比,輸出描述子的長度變?yōu)?。輸出描述子的9個變量定義如下:從低到高分別表示為下一個描述符指針寄存器地址的高16位(NDPL),下一個描述符指針寄存器地址的高16位(NDPH),輸出地址的低16位(SAL),輸出地址的高16位(SAH),配置寄存器(DMACFG)、X_COUNT寄存器的數(shù)值(XCNT)、Y _COUNT寄存器的數(shù)值(YCNT)、Y_MODIFY寄存器的數(shù)值(YMOD)[9?10]。本方案中取值分別為0,0,0,0,0x7915,864,2,625,2。每采集完一幀圖像后即視頻采集的中斷后,手動改變輸出視頻的地址,即通過改變輸出描述子的第2,3位的標(biāo)志量SAL, SAH即可。
2.3 視頻輸入/輸出整體設(shè)計方案
視頻輸入/輸出整體設(shè)計方案見圖3。
圖3 coreB的工作流程圖
本方案可以分為以下4個步驟:
(1) 視頻輸入/輸出參數(shù)初始化及啟動。首先對視頻編解碼芯片ADV7171,ADV7181B進行初始化,以及視頻采集、輸出相關(guān)參數(shù)進行設(shè)定,然后啟動ADV7181B,ADV7171進行視頻的輸入和輸出。
(2) 視頻采集。視頻存儲區(qū)域為在SDRAM中開辟的3個緩沖區(qū)域,當(dāng)采集完1幀圖像后,根據(jù)幀序列號,自動存入將其存入相應(yīng)的存儲區(qū)域。
(3) 視頻輸出。采集并存入1幀圖像在相應(yīng)SDRAM區(qū)后,改變ADV7171的圖像輸出地址,顯示采集的圖像。
(4) 退出視頻輸入/輸出模塊。程序接收到“停止”指令,退出。
3 實驗結(jié)果與分析
圖像采集/顯示模塊部分主要用于實時采集CCD捕獲的視頻,將之放置在相應(yīng)的SDRAM區(qū)域中,最后再將其顯示出來。該模塊是視頻處理模塊的基礎(chǔ),其測試可以分為圖像采集和圖像顯示兩個部分來做測試。
3.1 圖像采集功能的測試
主要用來驗證系統(tǒng)采集圖像通路的正確性,所開發(fā)的嵌入式視頻系統(tǒng)將采集的圖像分別放置在sFrame0, sFrame1和 sFrame2所命名的SDRAM區(qū)域中。對實驗室中的場景進行采集測試,各存儲區(qū)域的存儲圖像如圖4 (a)~(c)所示。從圖中可以看出系統(tǒng)能很好的實現(xiàn)圖像的采集功能,并按照ITU?656的PAL制式,分為上下兩場存儲在相應(yīng)的存儲區(qū)域中。三個首尾相連的環(huán)形存儲圖像方式有效防止了后續(xù)視頻處理模塊在進行視頻處理時漏幀情況的發(fā)生。
3.2 圖像顯示功能的測試
為實時的查看跟蹤效果,圖像必須能夠?qū)崟r地輸出出來,對輸出通路進行測試,結(jié)果如圖4(d)所示。從圖中看出所開發(fā)的嵌入式視頻系統(tǒng)能夠?qū)崟r采集到圖像在監(jiān)視器中顯示出來。
4 結(jié) 論
本文設(shè)計了基于ADSP?BF561的嵌入式視頻處理系統(tǒng)的視頻采集和顯示方案,該方案以ADSP?BF561為核心,在充分使用BF561片上豐富外設(shè)接口的同時,通過對視頻輸入/輸出DMA工作方式的合理配置,實現(xiàn)了視頻圖像的實時采集和顯示,為視頻處理系統(tǒng)的工作奠定了基礎(chǔ)。
圖4 采集和顯示的實驗結(jié)果
參考文獻
[1] 張彬,胡棟.基于ADSP?BF561的實時視頻采集方案的實現(xiàn)[J].電視技術(shù),2009,33(12):28?31.
[2] 劉峰.視頻圖像編碼技術(shù)及國際標(biāo)準(zhǔn)[M].北京:北京郵電大學(xué)出版社,2005.
[3] 陳峰.Blackfin 系列DSP 原理與系統(tǒng)設(shè)計[M].北京:電子工業(yè)出版社,2004.
[4] 王曉衛(wèi),孫軍濤.基于ADSP?BF561的英文字符庫設(shè)計[J].單片機與嵌入式系統(tǒng)應(yīng)用,2011(7):16?19.
[5] 王曉衛(wèi),吳曉中,王宏宇.基于ADSP?BF561的圖像平移算法的設(shè)計[J].現(xiàn)代電子技術(shù),2011,34(10):59?61.
[6] Analog Devices Inc. ADSP?BF561 Blackfin processor hardware reference, rev 3.0 [EB/OL]. [2012?12?20]. http://www.bdtic.com/DownLoad.
[7] Analog Devices Inc. Video framework consideration for image processing on Blackfin processors (EE?276) [EB/OL]. [ 2010?10?22]. http://www.wenku.baidu.com/link.
[8] Analog Devices Inc. Visual Dsp++5.0 device drivers and system services manual for Blackfin processors, revision 3.0 [EB/OL]. [2011?08?30]. http: www.txt.wenku.baidu.com.
[9] 吳敏淵.ADSP系列數(shù)字信號處理器原理[M].北京:電子工業(yè)出版社,2002.
[10] 曹小秋.ADI Blackfin系列DSP處理器實驗指導(dǎo)書[M].北京:電子工業(yè)出版社,2008.