DM642平臺多路視頻處理系統的實時性分析
引 言
本文引用地址:http://www.antipu.com.cn/article/82488.htm視頻合成技術是圖像處理方面的一個重要應用,它將一個圖像的多個狀態(tài)或者多幅不同圖像進行合成,來實現虛擬面板、圖像疊加、模擬場景、圖像優(yōu)化等效果。多路視頻合成顯示技術是將通過多個途徑(如攝像機、PC機、網絡等),采集而來的多路視頻信號進行處理,并按照實際所需進行顯示。
選擇適當的核心處理芯片,對數據量大、實時性高的視頻信號處理來說,是首要考慮的問題。美國TI公司推出的針對視頻和圖像解決方案的TMS320DM642型高性能數字媒體處理器,是TI公司C6000系列中一款基于DaVinci技術的DSP,其核心是C6416型高性能數字信號處理器,具有極強的處理能力、高度的靈活性和可編程性,同時外圍集成了非常完整的音頻、視頻和網絡通信等設備及接口,特別適用于機器視覺、醫(yī)學成像、網絡視頻監(jiān)控、數字廣播,以及基于數字視頻/圖像處理的消費類電子產品等高速DSP應用領域。本設計利用這一處理器,實現了一套4路、高清晰度的圖像顯示系統:所采集的視頻信號是4路高清晰度視頻圖像——3路1 024×768@60Hz的VGA視頻信號、1路768×5766@25幀(PAL制式)的S-Video視頻信號;視頻輸出為單屏幕多窗口,分辨率為1024×768的RGB視頻圖像;刷新頻率為60幀/s。
系統的硬件部分主要包括:視頻輸入解碼模塊、DSP核心處理模塊、視頻輸出接口模塊、串口通信模塊、CPLD控制模塊,系統整體框圖如圖1所示。
1 系統整體描述
系統通過視頻轉換芯片AIT2138和SAA7110來采集視頻信號,采用2片DM642(分別記DM642A和DM642B)并聯,其中主算法的實現在DM642B中進行。DM642A的3個視頻端口全部用于視頻采集,采集3路RGB信號。采集后存到DM642A的外部存儲器SDRAM1,等DM642B執(zhí)行算法時,DM642A按照需要將數據傳至DM642B。處理完之后數據經DM642B視頻口輸出為RGB格式,并由ADV7125完成數模轉化,輸出至VGA接口。系統采用Altera公司的EPM7128S CPLD來完成邏輯產牛和系統控制,采用Philips公司51系列單片機P89C668通過串口與PC機通信,方便地完成顯示模式的切換。
2 數據通信量分析
鑒于DM642視頻端口的傳輸能力,3路1024×768@60 Hz的RGB信號的數據量過大,無法實時處理。所以將其通過AIT2138(該芯片支持NTSC和PAL兩種制式輸出)轉化成768×576@25 Hz的PAL電視信號。電視信號再經過SAA7110轉化成16位的數字Y/C分離信號。所以每幀圖像傳至DSP視頻輸入口時的數據有顯著下降。公式如下:
即下降到原始數據量的3/8。簡化了后邊的數據處理過程。
3 系統的實時性分析
先預定系統的系統時鐘頻率為133 MHz(按照DM642硬件說明書上的建議,此時DSP外部存儲器應選用6 ns級)。DSP數據總線寬度64位,每幀圖像從DSP的視頻通道進入二級緩存L2的時間為:
0.843 75 MB/64×133 MHz=0.8 ms (4)
因為DM642A沒有數據的取舍權,所以3路數據要全部存入SDRAM。實際所需時間應為:
0.8×3=2.4 ms (5)
這一步必須計算成3幀圖像的時間。因為只有3路各到1幀圖像時,才能對其數據選擇,滿足后邊選定窗口大小的需求。
至此,數據傳輸都是按照既定窗口大小的數據量進行傳輸的。也就是說,對應要顯示的合成后的1幀圖像,DM642A向DM642B傳輸的數據不大于1幀:4個窗口均勻顯示時,DM642A到DM642B傳輸的數據大小為3/4幀,DM642A的某一路全屏顯示時傳輸為1幀,當DM642B的S-Video全屏顯示時,不用傳輸。
以下是數據流經各個部分的時間估算:
DM642A上的3路
?、僖曨l口→內存 2.4 ms
?、趦却?rarr;SDRAM 12.4 ms
?、跾DRAM1→內存 <0.8 ms
?、軆却?rarr;DPRAM <0.8 ms
⑤DPRAM→DM642B <0.8 ms
DM642B上的1路
?、抟曨l口→內存 0.8 ms
?、邇却?rarr;SDRAM2 0.8 ms
?、跾DRAM1→內存 <0.8 ms
?、醿却?rarr;視頻輸出端口 0.8 ms
不考慮流水,總耗時為各個時間之和:
?、?②+③+④+⑤+⑥+⑦+⑧+⑨=1004 ms
上述過程中可以同時進行的有:
?、俸廷?、②和⑦、③和⑧、④和⑤。
這樣就實現了一定程度的流水。由此得出,從系統開始采集原始數據,到1幀合成好的圖像顯示到屏幕上所需時間為:
①+②+③+④+⑨=7.2 ms
也就是說,系統處理能力較強,每秒能處理的電視圖像數目可以滿足實時顯示的需要。
4 兩片DSP之間的連接方式
EMIF(外部存儲器接口)方式連接。這種方式是采用一個DPRAM作為2片DSP的公用外部存儲器。在DM642要執(zhí)行算法時,DM642A將組織好的數據以訪問外部存儲器的方式存到DPRAM,然后DM642B同樣以訪問外部存儲器的方式將所需數據取走。此時2片之間是并聯關系,因為DM642B不能對DM642A進行傳輸數據時機的控制,所以需要通過專門的控制邏輯來協調2片DSP之間的配合。這種方式數據傳輸寬度為64位,需要與其他連接到EMIF數據總線上的外部存儲器或I/O設備分時復用。
5 DM642視頻通道的說明
DM642是一款基于TI DaVinci技術的專門用于視頻多媒體處理的芯片。它集成了3個視頻口,分別為VP0、VP1、VP2。每個視頻口都可以作為一個視頻捕捉口、視頻顯示口或是傳輸數據流輸人接口。
每個視頻口有A和B兩個通道,兩個通道共用一個5 120字節(jié)的捕獲/顯示緩存。對于整個視頻口,要么設置成視頻捕捉口,要么設置成視頻顯示口。也就是說,A、B兩個通道必須一致,同為輸入或輸出。不管是BT656、Y/C、Raw video,或者是傳輸數據流格式,視頻口都有獨立的數據通道來控制視頻輸入或輸出數據的解析和格式化。
對于視頻捕捉操作,視頻口既可以以雙通道的方式對兩路8/10位的BT656視頻或Raw video格式捕捉;也可以單通道的方式對8/10位的BT656、8/10位Raw video圖像,16/20位Y/C,16/20位Raw video圖像或者是8位的傳輸流進行捕捉。
對于視頻顯示操作,單通道時的視頻口用法和上邊提到的捕捉時相同。作為雙通道時,可以顯示連接到相同時序的雙通道8/10位原始視頻。單通道時通道B閑置不用。
6 時鐘頻率設計
系統時鐘(存儲器、DSP I/O口時鐘)采用133 MHz,由外部晶振通過鎖相環(huán)倍頻提供。DM642核時鐘采用600 MHz,由與系統時鐘同源的外部晶振通過內部倍頻得到,如圖2所示。
此外視頻編解碼芯片根據自身制式特性單獨處理。輸入視頻的同步信號,由輸入RGB視頻的同步信號通過處理得到。
7 兩片DSP的步調協調
時鐘可共用。但是由于數據傳輸途徑的差別,DM642B捕捉的S-video做好處理前準備的時間要少于DM642A過來的RGB視頻。
系統啟動后,當DM642A的數據執(zhí)行到③的時候,DM642B開始捕捉S-video,從⑥開始進行。這樣,對以每次DM642A采集3路各1幀圖像時,DM642B應等待4.8ms再開始要采集與之對應的1幀S-video。
8 算法流程和執(zhí)行
算法流程如圖3所示。
鑒于本部分不是該文重點,故在此只作簡單說明。該算法設計的出發(fā)點都是由DM642B執(zhí)行主算法,DM642A只作數據的調理工作。當確定執(zhí)行哪種方式的顯示時,也就確定了對DM642A所采集的哪些數據加以使用。這個過程由DM642B發(fā)出請求,再由專門的控制邏輯來控制DM642A傳輸,也能實現系統的處理要求。
結 語
數據速度問題是實時高速大數據量視頻采集處理系統中要解決的關鍵問題。本文通過采用針對視頻多媒體應用優(yōu)化了的高速DSP和CPLD,以及專用視頻編解碼芯片,完成了一個四路雙制式高清視頻采集處理和多窗口顯示系統。經過最后調試和測試,該系統能夠滿足高速實時性的要求,達到了預期效果,并為下一步的多路視頻多圖像融合顯示系統,提供了很好的技術參考。
評論