王曉衛(wèi)+樊海榮+李明哲
摘 要: 針對(duì)BF561視頻處理系統(tǒng)中視頻實(shí)時(shí)采集和顯示這一基礎(chǔ)問(wèn)題,從軟硬件兩個(gè)方面對(duì)以ADSP?BF561為核心的視頻處理系統(tǒng)中的采集和輸出模塊的設(shè)計(jì)和開(kāi)發(fā)方法進(jìn)行描述。該設(shè)計(jì)方案在分析系統(tǒng)硬件結(jié)構(gòu)和所采集的視頻信號(hào)格式的基礎(chǔ)上,通過(guò)對(duì)視頻輸入/輸出工作流程以及BF561片上外設(shè)資源的合理安排和配置,保證視頻傳輸?shù)倪B續(xù)性,實(shí)現(xiàn)了視頻圖像的實(shí)時(shí)采集和顯示,為視頻處理系統(tǒng)的工作奠定了基礎(chǔ)。
關(guān)鍵詞: BF561芯片; 視頻采集; 視頻顯示; 并行通信接口; 直接存儲(chǔ)器存取
中圖分類(lèi)號(hào): TN919?34; TP391 文獻(xiàn)標(biāo)識(shí)碼: A 文章編號(hào): 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處理器是美國(guó)模擬器件公司推出的針對(duì)多媒體和通信應(yīng)用方面的一款高性能產(chǎn)品,擁有2個(gè)運(yùn)算速度達(dá)600 MHz的DSP內(nèi)核,具有豐富的外設(shè)接口,且內(nèi)部集成有兩個(gè)并行外部接口(Parallel Peripheral Interface,PPI),為同時(shí)進(jìn)行圖像采集、處理和顯示提供了一個(gè)系統(tǒng)級(jí)片上解決方案[1?2]。
本文針對(duì)BF561視頻處理系統(tǒng)中視頻實(shí)時(shí)采集和顯示這一基礎(chǔ)問(wèn)題,從軟硬件兩個(gè)方面提出了設(shè)計(jì)解決方案。該方案在充分利用ADSP?BF561片上豐富外設(shè)接口的基礎(chǔ)上,通過(guò)對(duì)PPI和DMA控制器以及SDRAM的合理配置,有效解決了高速外設(shè)數(shù)據(jù)塊的連續(xù)傳輸和處理問(wèn)題,保證視頻傳輸?shù)倪B續(xù)性,實(shí)現(xiàn)了整個(gè)系統(tǒng)實(shí)時(shí)采集和顯示。
1系統(tǒng)硬件設(shè)計(jì)方案
整個(gè)視頻采集顯示系統(tǒng)的核心是基于ADSP?BF561的嵌入式硬件平臺(tái),圖1為整個(gè)硬件平臺(tái)的系統(tǒng)框圖。系統(tǒng)由Analog Device公司的ADSP?BF561、視頻解碼芯片ADV7181B、視頻編碼芯片ADV7171芯片、CCD攝像頭以及顯示器組成。CCD攝像頭獲取的是模擬視頻信號(hào),其必須通過(guò)電視解碼和A/D變換后才能進(jìn)入DSP處理系統(tǒng)。ADV7181B是一款綜合視頻解碼器,它能夠自動(dòng)將一種兼容國(guó)際標(biāo)準(zhǔn)NTSC或PAL的模擬視頻基帶信號(hào)轉(zhuǎn)換為另一種兼容16位/8位CCIR601/CCIR656的YCrCb型4∶2∶2或4∶1∶1數(shù)字視頻信號(hào)[3?5]。其靈活的數(shù)字式輸出接口能夠在基于緩沖器結(jié)構(gòu)和行鎖時(shí)鐘的系統(tǒng)中完成視頻解碼和轉(zhuǎn)換功能。另一方面,ADSP?BF561提供了兩個(gè)可直接與并行A/D和D/A轉(zhuǎn)換器、符合ITU656標(biāo)準(zhǔn)的視頻編碼和解碼器以及其他通用外設(shè)連接的多功能并行接口(PPI)。在ITU?656模式下,PPI提供8或10位視頻數(shù)據(jù)的接收和解析。因本系統(tǒng)將ADSP?BF561提供的兩個(gè)多功能并行接口PPI0和PPI1分別直接與視頻編解碼芯片相連,其中由視頻輸入設(shè)備CCD攝像頭采集的圖像經(jīng)ADV7181B解碼后和ADSP?BF5611的PPI0連接,PPI1通過(guò)ADV7171編碼后由視頻輸出設(shè)備顯示器顯示。
圖1 基于BF561的視頻處理系統(tǒng)功能框圖
2 系統(tǒng)軟件設(shè)計(jì)方案
BF561擁有兩個(gè)運(yùn)算速度高達(dá)600 MHz的DSP內(nèi)核,每個(gè)內(nèi)核都各自擁有獨(dú)立的乘法器和ALU,專(zhuān)門(mén)的視頻處理硬件單元和視頻處理指令。為了節(jié)約內(nèi)核開(kāi)銷(xiāo),方便后期在空閑的內(nèi)核進(jìn)行相關(guān)的視頻處理工作,方案中將視頻的采集和輸出工作都集中由CoreB來(lái)實(shí)現(xiàn),CoreA暫不處理具體工作。
嵌入式視頻系統(tǒng)集成有視頻采集、處理(根據(jù)系統(tǒng)的要求處理方法各異)及顯示功能,而其中視頻的采集及顯示功能是保證系統(tǒng)正常工作的關(guān)鍵性基礎(chǔ)性問(wèn)題之一。本文將重點(diǎn)對(duì)這一問(wèn)題的關(guān)鍵技術(shù)要點(diǎn)進(jìn)行討論,以期在保證所采集到的各幀視頻數(shù)據(jù)完整、正確的前提下,實(shí)現(xiàn)顯示畫(huà)面的連續(xù)性,并盡量降低丟幀率以增強(qiáng)其后處理的精確度。
2.1 視頻采集方案
基于BF561的視頻系統(tǒng)采集過(guò)程如下:CCD攝像頭每采集一幀模擬視頻數(shù)據(jù)(PAL制)通過(guò)同軸電纜接入到視頻解碼器ADV7181B內(nèi)部,經(jīng)過(guò)A/D采樣視頻解碼,輸出ITU?656格式的視頻信號(hào),最后通過(guò)PPI0口,傳給BF561,在該過(guò)程中所要解決的關(guān)鍵問(wèn)題如下:
(1) 視頻數(shù)據(jù)存儲(chǔ)位置的設(shè)定。由于ITU?656格式PAL制式的圖像大小為1 728×625 ≈1 080 000 B,約為1 055 KB,而B(niǎo)F561的片內(nèi)存儲(chǔ)空間最大為132 KB,因此BF561的片內(nèi)存儲(chǔ)器無(wú)法完整存放1幀數(shù)據(jù)。本方案中擴(kuò)展了一個(gè)大小為64 MB外部存儲(chǔ)器SDRAM。
(2) 視頻數(shù)據(jù)傳輸方式的選擇。PPI接口專(zhuān)為高速設(shè)備優(yōu)化設(shè)計(jì),其不支持直接讀/寫(xiě)端口,因此方案中使用PPI端口所具有的DMA傳輸能力,將數(shù)據(jù)由并行串口PPI0通過(guò)DMA搬移傳送至預(yù)先在片外SDRAM中開(kāi)辟的一幀大的固定數(shù)據(jù)存儲(chǔ)區(qū)中,最大限度地減少DSP內(nèi)核開(kāi)銷(xiāo)完成數(shù)據(jù)的傳輸。
(3) 相關(guān)寄存器的配置。PPI0和DMA控制器的配合使用實(shí)現(xiàn)了視頻數(shù)據(jù)的實(shí)時(shí)采集,為保證傳輸?shù)恼_性,必須合理設(shè)置相關(guān)寄存器。
對(duì)PPI編程需要設(shè)置的寄存器有PPI控制寄存器(PPIx_CONTROL)、PPI狀態(tài)寄存器(PPIx_STATUS)、延時(shí)數(shù)量寄存器(PPIx_DELAY)、傳輸計(jì)數(shù)寄存器(PPIx_COUNT)和每幀線路寄存器(PPIx_FRAME)。其中延時(shí)數(shù)量寄存器和傳輸計(jì)數(shù)寄存器只在GP模式下有效[6?8],而本方案采用的是ITU?656格式的輸入輸出模式,因此只需對(duì)PPI控制寄存器和每幀線路寄存器進(jìn)行配置即可。字母“x”表示所使用的PPI通道,其值可以為0或1,在視頻采集時(shí)其值為0,輸出時(shí)其值為1。
基于DMA的視頻傳輸方式可以在CPU運(yùn)行指令的同時(shí)從外部存儲(chǔ)器或設(shè)備中存取數(shù)據(jù),也可以在CPU不參與的情況下,由DMA控制器直接進(jìn)行數(shù)據(jù)傳輸,有效降低傳輸對(duì)系統(tǒng)實(shí)時(shí)性的影響。Blackfin561處理器的DMA控制器同時(shí)支持1D和2DDMA傳輸,使用該方式時(shí),主要設(shè)置的寄存器有DMA控制寄存器(DMAx_y_CONFIG),開(kāi)始地址寄存器(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í)施具體的獨(dú)立于處理器活動(dòng)的數(shù)據(jù)傳輸,每個(gè)控制器都有12個(gè)外設(shè)DMA通道和4個(gè)存儲(chǔ)器DMA通道,但連接到DMA1控制器上的外設(shè)支持32?bit數(shù)據(jù)傳輸,而連接到控制器上的外設(shè)僅支持16?bit的數(shù)據(jù)傳輸。為提高數(shù)據(jù)傳輸速度,本方案使用DMA1控制器,即字母“x”的取值設(shè)為1。字母“y”表示一個(gè)特定的有DMA能力的外設(shè),這些外設(shè)有PPI0,PPI1,SPORT0,SPORT1,UART等,本方案使用到的有PPI0和PPI1。視頻數(shù)據(jù)采集時(shí),由于使用的是通道PPI0,因此字母“y”的取值為0,而輸出時(shí),使用的是通道PPI1,因此字母“y”的取值為1。
ADSP?BF561 DMA控制器支持典型DMA操作包括:Stop Mode,單一的、傳輸完成時(shí)停止的線性緩沖區(qū);Autobuffer Mode,自動(dòng)刷新循環(huán)緩沖區(qū),當(dāng)全部或部分緩沖區(qū)滿時(shí)中斷;Descrptor Array Mode,一維或二維DMA,使用描述子數(shù)組;Descrptor List Mode,二維DMA,使用一個(gè)描述子陣列,僅指定公共頁(yè)內(nèi)的基DMA地址[4]。為保證連續(xù)采集不斷幀,解決傳統(tǒng)的采集一幀顯示一幀的模式出現(xiàn)的閃屏情況,本設(shè)計(jì)中使用基于描述符的DMA傳輸方式,并將最后一個(gè)指向首塊的頭地址,即第第四種方式?;诿枋龇腄MA傳輸需要用存放在存儲(chǔ)器內(nèi)的一組參數(shù)來(lái)初始化一個(gè)DMA序列。這種傳輸允許多個(gè)DMA系列鏈接在一起。在基于描述符的DMA操作中,一個(gè)DMA通道可以通過(guò)編程自動(dòng)建立起來(lái),并可在當(dāng)前序列完成后開(kāi)始另一個(gè)DMA傳輸。鑒于對(duì)視頻數(shù)據(jù)傳輸大小和方向的靈活性的要求,本方案使用基于descriptor DMA 模式進(jìn)行傳輸。
本系統(tǒng)在采集顯示時(shí),一方面DMA會(huì)向SDRAM寫(xiě)入視頻數(shù)據(jù),另一方面,DMA又會(huì)不斷的讀取SDRAM中顯示區(qū)域的內(nèi)容,很明顯在進(jìn)行大量寫(xiě)操作的時(shí)候?qū)?huì)造成嚴(yán)重的SDRAM的讀/寫(xiě)沖突,進(jìn)而會(huì)影響DMA的傳輸,造成顯示出錯(cuò)。為避免這種現(xiàn)象的出現(xiàn),本方案在SDRAM的3個(gè)不同bank上開(kāi)辟了3個(gè)存儲(chǔ)空間,分別為sFrame0,sFrame1和 sFrame2。使用3個(gè)頭尾相連的描述鏈表控制PPI_DMA依次傳輸數(shù)據(jù)到3個(gè)緩沖區(qū)中,然后利用系統(tǒng)提供的中斷機(jī)制,由DMA狀態(tài)為觸發(fā)中斷,使得DMA每讀完或傳送完一幀數(shù)據(jù)后便可以產(chǎn)生一個(gè)相應(yīng)的中斷,并在中斷服務(wù)程序內(nèi)將采集的幀數(shù)加1。這種3級(jí)緩沖操作的最大特點(diǎn)是通過(guò)對(duì)當(dāng)前輸入視頻SDRM和輸出視頻SDRAM的相互配合,將采集到的視頻流沒(méi)有停頓的送到了顯示的PPI_DMA 端,滿足了對(duì)視頻流進(jìn)行流水線式處理的需要。系統(tǒng)運(yùn)行的時(shí)序如圖2所示。
圖2 系統(tǒng)處理的時(shí)序圖
PPI0每采集1幀數(shù)據(jù)中斷1次,在中斷服務(wù)程序中對(duì)當(dāng)前采集的視頻圖像存放位置進(jìn)行標(biāo)記,以便對(duì)CoreA對(duì)其進(jìn)行實(shí)時(shí)處理。
2.2 視頻輸出設(shè)計(jì)方案
為保證視頻輸出時(shí)所采集到的視頻數(shù)據(jù)的完整性,輸出DMA擬采用stop模式。但考慮在stop模式下,需要重新進(jìn)行DMA、PPI的初始化等工作,而系統(tǒng)對(duì)實(shí)時(shí)性的要求又比較高,因此輸出時(shí)同樣采用描述子方式,與輸入描述子長(zhǎng)度為4相比,輸出描述子的長(zhǎng)度變?yōu)?。輸出描述子的9個(gè)變量定義如下:從低到高分別表示為下一個(gè)描述符指針寄存器地址的高16位(NDPL),下一個(gè)描述符指針寄存器地址的高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。每采集完一幀圖像后即視頻采集的中斷后,手動(dòng)改變輸出視頻的地址,即通過(guò)改變輸出描述子的第2,3位的標(biāo)志量SAL, SAH即可。
2.3 視頻輸入/輸出整體設(shè)計(jì)方案
視頻輸入/輸出整體設(shè)計(jì)方案見(jiàn)圖3。
圖3 coreB的工作流程圖
本方案可以分為以下4個(gè)步驟:
(1) 視頻輸入/輸出參數(shù)初始化及啟動(dòng)。首先對(duì)視頻編解碼芯片ADV7171,ADV7181B進(jìn)行初始化,以及視頻采集、輸出相關(guān)參數(shù)進(jìn)行設(shè)定,然后啟動(dòng)ADV7181B,ADV7171進(jìn)行視頻的輸入和輸出。
(2) 視頻采集。視頻存儲(chǔ)區(qū)域?yàn)樵赟DRAM中開(kāi)辟的3個(gè)緩沖區(qū)域,當(dāng)采集完1幀圖像后,根據(jù)幀序列號(hào),自動(dòng)存入將其存入相應(yīng)的存儲(chǔ)區(qū)域。
(3) 視頻輸出。采集并存入1幀圖像在相應(yīng)SDRAM區(qū)后,改變ADV7171的圖像輸出地址,顯示采集的圖像。
(4) 退出視頻輸入/輸出模塊。程序接收到“停止”指令,退出。
3 實(shí)驗(yàn)結(jié)果與分析
圖像采集/顯示模塊部分主要用于實(shí)時(shí)采集CCD捕獲的視頻,將之放置在相應(yīng)的SDRAM區(qū)域中,最后再將其顯示出來(lái)。該模塊是視頻處理模塊的基礎(chǔ),其測(cè)試可以分為圖像采集和圖像顯示兩個(gè)部分來(lái)做測(cè)試。
3.1 圖像采集功能的測(cè)試
主要用來(lái)驗(yàn)證系統(tǒng)采集圖像通路的正確性,所開(kāi)發(fā)的嵌入式視頻系統(tǒng)將采集的圖像分別放置在sFrame0, sFrame1和 sFrame2所命名的SDRAM區(qū)域中。對(duì)實(shí)驗(yàn)室中的場(chǎng)景進(jìn)行采集測(cè)試,各存儲(chǔ)區(qū)域的存儲(chǔ)圖像如圖4 (a)~(c)所示。從圖中可以看出系統(tǒng)能很好的實(shí)現(xiàn)圖像的采集功能,并按照ITU?656的PAL制式,分為上下兩場(chǎng)存儲(chǔ)在相應(yīng)的存儲(chǔ)區(qū)域中。三個(gè)首尾相連的環(huán)形存儲(chǔ)圖像方式有效防止了后續(xù)視頻處理模塊在進(jìn)行視頻處理時(shí)漏幀情況的發(fā)生。
3.2 圖像顯示功能的測(cè)試
為實(shí)時(shí)的查看跟蹤效果,圖像必須能夠?qū)崟r(shí)地輸出出來(lái),對(duì)輸出通路進(jìn)行測(cè)試,結(jié)果如圖4(d)所示。從圖中看出所開(kāi)發(fā)的嵌入式視頻系統(tǒng)能夠?qū)?shí)時(shí)采集到圖像在監(jiān)視器中顯示出來(lái)。
4 結(jié) 論
本文設(shè)計(jì)了基于ADSP?BF561的嵌入式視頻處理系統(tǒng)的視頻采集和顯示方案,該方案以ADSP?BF561為核心,在充分使用BF561片上豐富外設(shè)接口的同時(shí),通過(guò)對(duì)視頻輸入/輸出DMA工作方式的合理配置,實(shí)現(xiàn)了視頻圖像的實(shí)時(shí)采集和顯示,為視頻處理系統(tǒng)的工作奠定了基礎(chǔ)。
圖4 采集和顯示的實(shí)驗(yàn)結(jié)果
參考文獻(xiàn)
[1] 張彬,胡棟.基于ADSP?BF561的實(shí)時(shí)視頻采集方案的實(shí)現(xiàn)[J].電視技術(shù),2009,33(12):28?31.
[2] 劉峰.視頻圖像編碼技術(shù)及國(guó)際標(biāo)準(zhǔn)[M].北京:北京郵電大學(xué)出版社,2005.
[3] 陳峰.Blackfin 系列DSP 原理與系統(tǒng)設(shè)計(jì)[M].北京:電子工業(yè)出版社,2004.
[4] 王曉衛(wèi),孫軍濤.基于ADSP?BF561的英文字符庫(kù)設(shè)計(jì)[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2011(7):16?19.
[5] 王曉衛(wèi),吳曉中,王宏宇.基于ADSP?BF561的圖像平移算法的設(shè)計(jì)[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ù)字信號(hào)處理器原理[M].北京:電子工業(yè)出版社,2002.
[10] 曹小秋.ADI Blackfin系列DSP處理器實(shí)驗(yàn)指導(dǎo)書(shū)[M].北京:電子工業(yè)出版社,2008.
圖2 系統(tǒng)處理的時(shí)序圖
PPI0每采集1幀數(shù)據(jù)中斷1次,在中斷服務(wù)程序中對(duì)當(dāng)前采集的視頻圖像存放位置進(jìn)行標(biāo)記,以便對(duì)CoreA對(duì)其進(jìn)行實(shí)時(shí)處理。
2.2 視頻輸出設(shè)計(jì)方案
為保證視頻輸出時(shí)所采集到的視頻數(shù)據(jù)的完整性,輸出DMA擬采用stop模式。但考慮在stop模式下,需要重新進(jìn)行DMA、PPI的初始化等工作,而系統(tǒng)對(duì)實(shí)時(shí)性的要求又比較高,因此輸出時(shí)同樣采用描述子方式,與輸入描述子長(zhǎng)度為4相比,輸出描述子的長(zhǎng)度變?yōu)?。輸出描述子的9個(gè)變量定義如下:從低到高分別表示為下一個(gè)描述符指針寄存器地址的高16位(NDPL),下一個(gè)描述符指針寄存器地址的高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。每采集完一幀圖像后即視頻采集的中斷后,手動(dòng)改變輸出視頻的地址,即通過(guò)改變輸出描述子的第2,3位的標(biāo)志量SAL, SAH即可。
2.3 視頻輸入/輸出整體設(shè)計(jì)方案
視頻輸入/輸出整體設(shè)計(jì)方案見(jiàn)圖3。
圖3 coreB的工作流程圖
本方案可以分為以下4個(gè)步驟:
(1) 視頻輸入/輸出參數(shù)初始化及啟動(dòng)。首先對(duì)視頻編解碼芯片ADV7171,ADV7181B進(jìn)行初始化,以及視頻采集、輸出相關(guān)參數(shù)進(jìn)行設(shè)定,然后啟動(dòng)ADV7181B,ADV7171進(jìn)行視頻的輸入和輸出。
(2) 視頻采集。視頻存儲(chǔ)區(qū)域?yàn)樵赟DRAM中開(kāi)辟的3個(gè)緩沖區(qū)域,當(dāng)采集完1幀圖像后,根據(jù)幀序列號(hào),自動(dòng)存入將其存入相應(yīng)的存儲(chǔ)區(qū)域。
(3) 視頻輸出。采集并存入1幀圖像在相應(yīng)SDRAM區(qū)后,改變ADV7171的圖像輸出地址,顯示采集的圖像。
(4) 退出視頻輸入/輸出模塊。程序接收到“停止”指令,退出。
3 實(shí)驗(yàn)結(jié)果與分析
圖像采集/顯示模塊部分主要用于實(shí)時(shí)采集CCD捕獲的視頻,將之放置在相應(yīng)的SDRAM區(qū)域中,最后再將其顯示出來(lái)。該模塊是視頻處理模塊的基礎(chǔ),其測(cè)試可以分為圖像采集和圖像顯示兩個(gè)部分來(lái)做測(cè)試。
3.1 圖像采集功能的測(cè)試
主要用來(lái)驗(yàn)證系統(tǒng)采集圖像通路的正確性,所開(kāi)發(fā)的嵌入式視頻系統(tǒng)將采集的圖像分別放置在sFrame0, sFrame1和 sFrame2所命名的SDRAM區(qū)域中。對(duì)實(shí)驗(yàn)室中的場(chǎng)景進(jìn)行采集測(cè)試,各存儲(chǔ)區(qū)域的存儲(chǔ)圖像如圖4 (a)~(c)所示。從圖中可以看出系統(tǒng)能很好的實(shí)現(xiàn)圖像的采集功能,并按照ITU?656的PAL制式,分為上下兩場(chǎng)存儲(chǔ)在相應(yīng)的存儲(chǔ)區(qū)域中。三個(gè)首尾相連的環(huán)形存儲(chǔ)圖像方式有效防止了后續(xù)視頻處理模塊在進(jìn)行視頻處理時(shí)漏幀情況的發(fā)生。
3.2 圖像顯示功能的測(cè)試
為實(shí)時(shí)的查看跟蹤效果,圖像必須能夠?qū)崟r(shí)地輸出出來(lái),對(duì)輸出通路進(jìn)行測(cè)試,結(jié)果如圖4(d)所示。從圖中看出所開(kāi)發(fā)的嵌入式視頻系統(tǒng)能夠?qū)?shí)時(shí)采集到圖像在監(jiān)視器中顯示出來(lái)。
4 結(jié) 論
本文設(shè)計(jì)了基于ADSP?BF561的嵌入式視頻處理系統(tǒng)的視頻采集和顯示方案,該方案以ADSP?BF561為核心,在充分使用BF561片上豐富外設(shè)接口的同時(shí),通過(guò)對(duì)視頻輸入/輸出DMA工作方式的合理配置,實(shí)現(xiàn)了視頻圖像的實(shí)時(shí)采集和顯示,為視頻處理系統(tǒng)的工作奠定了基礎(chǔ)。
圖4 采集和顯示的實(shí)驗(yàn)結(jié)果
參考文獻(xiàn)
[1] 張彬,胡棟.基于ADSP?BF561的實(shí)時(shí)視頻采集方案的實(shí)現(xiàn)[J].電視技術(shù),2009,33(12):28?31.
[2] 劉峰.視頻圖像編碼技術(shù)及國(guó)際標(biāo)準(zhǔn)[M].北京:北京郵電大學(xué)出版社,2005.
[3] 陳峰.Blackfin 系列DSP 原理與系統(tǒng)設(shè)計(jì)[M].北京:電子工業(yè)出版社,2004.
[4] 王曉衛(wèi),孫軍濤.基于ADSP?BF561的英文字符庫(kù)設(shè)計(jì)[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2011(7):16?19.
[5] 王曉衛(wèi),吳曉中,王宏宇.基于ADSP?BF561的圖像平移算法的設(shè)計(jì)[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ù)字信號(hào)處理器原理[M].北京:電子工業(yè)出版社,2002.
[10] 曹小秋.ADI Blackfin系列DSP處理器實(shí)驗(yàn)指導(dǎo)書(shū)[M].北京:電子工業(yè)出版社,2008.
圖2 系統(tǒng)處理的時(shí)序圖
PPI0每采集1幀數(shù)據(jù)中斷1次,在中斷服務(wù)程序中對(duì)當(dāng)前采集的視頻圖像存放位置進(jìn)行標(biāo)記,以便對(duì)CoreA對(duì)其進(jìn)行實(shí)時(shí)處理。
2.2 視頻輸出設(shè)計(jì)方案
為保證視頻輸出時(shí)所采集到的視頻數(shù)據(jù)的完整性,輸出DMA擬采用stop模式。但考慮在stop模式下,需要重新進(jìn)行DMA、PPI的初始化等工作,而系統(tǒng)對(duì)實(shí)時(shí)性的要求又比較高,因此輸出時(shí)同樣采用描述子方式,與輸入描述子長(zhǎng)度為4相比,輸出描述子的長(zhǎng)度變?yōu)?。輸出描述子的9個(gè)變量定義如下:從低到高分別表示為下一個(gè)描述符指針寄存器地址的高16位(NDPL),下一個(gè)描述符指針寄存器地址的高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。每采集完一幀圖像后即視頻采集的中斷后,手動(dòng)改變輸出視頻的地址,即通過(guò)改變輸出描述子的第2,3位的標(biāo)志量SAL, SAH即可。
2.3 視頻輸入/輸出整體設(shè)計(jì)方案
視頻輸入/輸出整體設(shè)計(jì)方案見(jiàn)圖3。
圖3 coreB的工作流程圖
本方案可以分為以下4個(gè)步驟:
(1) 視頻輸入/輸出參數(shù)初始化及啟動(dòng)。首先對(duì)視頻編解碼芯片ADV7171,ADV7181B進(jìn)行初始化,以及視頻采集、輸出相關(guān)參數(shù)進(jìn)行設(shè)定,然后啟動(dòng)ADV7181B,ADV7171進(jìn)行視頻的輸入和輸出。
(2) 視頻采集。視頻存儲(chǔ)區(qū)域?yàn)樵赟DRAM中開(kāi)辟的3個(gè)緩沖區(qū)域,當(dāng)采集完1幀圖像后,根據(jù)幀序列號(hào),自動(dòng)存入將其存入相應(yīng)的存儲(chǔ)區(qū)域。
(3) 視頻輸出。采集并存入1幀圖像在相應(yīng)SDRAM區(qū)后,改變ADV7171的圖像輸出地址,顯示采集的圖像。
(4) 退出視頻輸入/輸出模塊。程序接收到“停止”指令,退出。
3 實(shí)驗(yàn)結(jié)果與分析
圖像采集/顯示模塊部分主要用于實(shí)時(shí)采集CCD捕獲的視頻,將之放置在相應(yīng)的SDRAM區(qū)域中,最后再將其顯示出來(lái)。該模塊是視頻處理模塊的基礎(chǔ),其測(cè)試可以分為圖像采集和圖像顯示兩個(gè)部分來(lái)做測(cè)試。
3.1 圖像采集功能的測(cè)試
主要用來(lái)驗(yàn)證系統(tǒng)采集圖像通路的正確性,所開(kāi)發(fā)的嵌入式視頻系統(tǒng)將采集的圖像分別放置在sFrame0, sFrame1和 sFrame2所命名的SDRAM區(qū)域中。對(duì)實(shí)驗(yàn)室中的場(chǎng)景進(jìn)行采集測(cè)試,各存儲(chǔ)區(qū)域的存儲(chǔ)圖像如圖4 (a)~(c)所示。從圖中可以看出系統(tǒng)能很好的實(shí)現(xiàn)圖像的采集功能,并按照ITU?656的PAL制式,分為上下兩場(chǎng)存儲(chǔ)在相應(yīng)的存儲(chǔ)區(qū)域中。三個(gè)首尾相連的環(huán)形存儲(chǔ)圖像方式有效防止了后續(xù)視頻處理模塊在進(jìn)行視頻處理時(shí)漏幀情況的發(fā)生。
3.2 圖像顯示功能的測(cè)試
為實(shí)時(shí)的查看跟蹤效果,圖像必須能夠?qū)崟r(shí)地輸出出來(lái),對(duì)輸出通路進(jìn)行測(cè)試,結(jié)果如圖4(d)所示。從圖中看出所開(kāi)發(fā)的嵌入式視頻系統(tǒng)能夠?qū)?shí)時(shí)采集到圖像在監(jiān)視器中顯示出來(lái)。
4 結(jié) 論
本文設(shè)計(jì)了基于ADSP?BF561的嵌入式視頻處理系統(tǒng)的視頻采集和顯示方案,該方案以ADSP?BF561為核心,在充分使用BF561片上豐富外設(shè)接口的同時(shí),通過(guò)對(duì)視頻輸入/輸出DMA工作方式的合理配置,實(shí)現(xiàn)了視頻圖像的實(shí)時(shí)采集和顯示,為視頻處理系統(tǒng)的工作奠定了基礎(chǔ)。
圖4 采集和顯示的實(shí)驗(yàn)結(jié)果
參考文獻(xiàn)
[1] 張彬,胡棟.基于ADSP?BF561的實(shí)時(shí)視頻采集方案的實(shí)現(xiàn)[J].電視技術(shù),2009,33(12):28?31.
[2] 劉峰.視頻圖像編碼技術(shù)及國(guó)際標(biāo)準(zhǔn)[M].北京:北京郵電大學(xué)出版社,2005.
[3] 陳峰.Blackfin 系列DSP 原理與系統(tǒng)設(shè)計(jì)[M].北京:電子工業(yè)出版社,2004.
[4] 王曉衛(wèi),孫軍濤.基于ADSP?BF561的英文字符庫(kù)設(shè)計(jì)[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2011(7):16?19.
[5] 王曉衛(wèi),吳曉中,王宏宇.基于ADSP?BF561的圖像平移算法的設(shè)計(jì)[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ù)字信號(hào)處理器原理[M].北京:電子工業(yè)出版社,2002.
[10] 曹小秋.ADI Blackfin系列DSP處理器實(shí)驗(yàn)指導(dǎo)書(shū)[M].北京:電子工業(yè)出版社,2008.