基于多核DSP處理器DM8168的視頻處理方法
摘要:隨著1080P高清視頻以及4K超高清晰視頻的普及和應(yīng)用,基于傳統(tǒng)單核DSP處理器的視頻信息處理已有些力不從心。為此TI公司推出了一款專門用于高清視頻處理的多核DSP處理器,它擁有4個不同類型的處理器,使得視頻處理達(dá)到了一個更高水平。本文分析研究了該處理器的多核DSP結(jié)構(gòu)及應(yīng)用開發(fā)方法,并對多核間的協(xié)調(diào)工作及負(fù)載情況進(jìn)行了測試分析。
本文引用地址:http://butianyuan.cn/article/201610/308114.htm引言
以DSP為核心的處理器憑借自身硬件結(jié)構(gòu)的優(yōu)勢和算法優(yōu)化使得一般的嵌入式產(chǎn)品在視頻應(yīng)用領(lǐng)域得到了廣泛的應(yīng)用。隨著高清視頻應(yīng)用的增多,傳統(tǒng)單核DSP處理器已經(jīng)不能很好地滿足應(yīng)用需求了。為此,TI公司推出了一款專門針對高清大數(shù)據(jù)量快速計算的專用多核DSP處理器DM8168。與傳統(tǒng)單核DSP或ARM+DSP的異構(gòu)多核結(jié)構(gòu)相比,DM8168集成了4個不同類型的處理器,除了傳統(tǒng)ARM+DSP結(jié)構(gòu)外,DM8168還擁有兩個專門針對高清視頻的圖像處理器。因此,研究如何基于這種復(fù)雜的多核DSP進(jìn)行應(yīng)用設(shè)計,是有一定實用價值的。
本文在一款基于多核DSP DM8168處理器的SEED-DVS8168平臺上,研究了16通道D1數(shù)據(jù)格式60 fps的大數(shù)據(jù)量高速視頻采集及壓縮的實現(xiàn)方法,并且對DM8168實現(xiàn)過程中4個核心處理器的負(fù)載進(jìn)行了測試和分析。
1 硬件平臺結(jié)構(gòu)
TMS320DM816是TI公司推出的達(dá)芬奇(DaVinci)硬件平臺。它在DM8168開發(fā)板上拓展了16路模擬輸入口,集成了多種外設(shè)接口。DM8168硬件平臺為TI的高性能異構(gòu)多核SoC片上系統(tǒng),該平臺集成了一個主頻為1.2 GHz的ARM Cortex—A8處理器,一個主頻為1GHz的C674x DSP以及3個主頻為600 MHz高清視頻圖像協(xié)處理器(High Definition Video/Imaging Coprocessor,HDVICP),以及一個高清視頻處理子系統(tǒng)(Hight Defi nition Video Processing Subsystem,HDVPSS)。多核DSP系統(tǒng)應(yīng)用中,各處理器在硬件上相互獨(dú)立、相互配合,極大地提升了整個系統(tǒng)的效率。本文針對DM8168集成的4片TVP8158對16路60 fps視頻的采集壓縮過程進(jìn)行了研究,并對結(jié)果進(jìn)行了分析。硬件平臺結(jié)構(gòu)如圖1所示。
1.1 ARM Cortex—A8處理器
ARM Cortex—A8是一款專門針對多任務(wù)應(yīng)用的高性能哈佛結(jié)構(gòu)處理器。本文中ARM Cortex—A8處理器主要用于控制管理各個從處理器,配置和調(diào)節(jié)各子系統(tǒng)的協(xié)同工作,管理外部設(shè)備及外部存儲器。
1.2 高清視頻處理子系統(tǒng)HDVPSS
HDVPSS集成了兩個獨(dú)立的視頻捕捉輸入端口VIN0、VIN1,每個VIN口又分為A、B兩組,即VINOA、VINOB、VIN1A、VIN1B。每個TVP5158復(fù)合了4路視頻送入VIN口,HDVPSS采集到數(shù)據(jù)之后利用內(nèi)部硬件把視頻抽離分解出來進(jìn)行后期處理,捕捉時鐘高達(dá)165MHz。此外,HDVPSS每個視頻輸入端口支持縮放、像素格式轉(zhuǎn)換、支持1路高達(dá)1080P60或8路復(fù)用的D1數(shù)據(jù)處理。功能上,HDVPSS集成了兩個視頻處理引擎,具有去隔行處理、降噪、格式轉(zhuǎn)換、視頻輸入/輸出等數(shù)據(jù)處理能力。
1.3 高清視頻協(xié)處理器HDVOCP
HDVICP是一個視頻編解碼硬件加速器,可以最大支持1080P60標(biāo)準(zhǔn)高清視頻的編解碼流。硬件加速可支持MPEG1/2/4 ASP/SP、H.264 BL/MP/HP、VC-1 SP/MP/AP、RV9/10、AVS-1.0等主流的編解標(biāo)準(zhǔn)。HDVICP集成了運(yùn)動估計加速引擎、幀內(nèi)預(yù)測估計引擎、熵編/解碼器等硬件模塊。HDVICP直接在硬件上提升了原本復(fù)雜的數(shù)字圖像處理運(yùn)算,從而增強(qiáng)了HDVICP的視頻處理能力。HDVICP的內(nèi)部結(jié)構(gòu)如圖2所示。
在外部,HDVICP與其他處理器之間通過郵箱中斷以及硬件自旋鎖來實現(xiàn)。郵箱中斷通過寫寄存器的方式向某個從處理器發(fā)送中斷信號,自旋鎖機(jī)制則為訪問系統(tǒng)共享資源提供了完善的解決方案;內(nèi)部,同步箱負(fù)責(zé)所有嵌入式模塊的調(diào)度,同步各加速器之間的參數(shù)以及數(shù)據(jù)。
1.4 數(shù)字信號處理DSP
C674x DSP內(nèi)核是TMS320C6000 DSP平臺上的高性能浮點(diǎn)數(shù)字信號處理器,其除了具有傳統(tǒng)DSP的硬件運(yùn)算加速器單元外,還具有SPLOO P、壓縮的指令集、增強(qiáng)的指令集、異常處理以及優(yōu)先級管理,完備的硬件支持使得C674x DSP在應(yīng)用中具有強(qiáng)大地數(shù)據(jù)信號處理能力。本系統(tǒng)研究中將傳統(tǒng)的視頻采集及壓縮編碼這類算法從DSP模塊中分離出來,極大地減輕了DSP的負(fù)載,使多核DSP協(xié)同工作的環(huán)境、性能得到了極大的優(yōu)化。
2 系統(tǒng)軟件設(shè)計
DM8168的主處理器是ARM Cortex—A8,開始上電之后U-Boot引導(dǎo)其從ROM中啟動Linux,一旦啟動成功,ARM Cortex—A8便引導(dǎo)從處理器C674x DSP和媒體控制器的電源管理、重啟控制以及設(shè)置可執(zhí)行文件的入口到相應(yīng)寄存器中,完成這個軟件運(yùn)行環(huán)境的建立。
結(jié)合DM8168硬件平臺的特點(diǎn),軟件系統(tǒng)整體劃分為4個模塊。其中ARM為主控模塊,運(yùn)行Linux系統(tǒng),主要負(fù)責(zé)整個系統(tǒng)的控制以及外設(shè)管理;另外3個內(nèi)核運(yùn)行BIOS6系統(tǒng),其中VPSS M3運(yùn)行在HDVPSS上,主要管理視頻的采集、存儲以及輸入/輸出;Video M3運(yùn)行在HDVICP上,主要負(fù)責(zé)視頻的編解碼;C674x DSP主要執(zhí)行軟件的顯示策略以及用戶算法。軟件結(jié)構(gòu)設(shè)計如圖3所示。
多通道視頻處理框架(Multi—channel FrameWork,McFw)中對視頻處理常用的捕獲、壓縮編碼、解碼、顯示等處理過程進(jìn)行了優(yōu)化,該框架下的視頻處理以Link為基本處理單位進(jìn)行。視頻傳遞采集、編碼以及顯示過程大致分為以下幾個過程。
(1)原始采集過程
系統(tǒng)獲得采集任務(wù)之后,首先初始化采集參數(shù),包括采集設(shè)備的檢測、需采集的視頻格式、輸出格式等。稍后調(diào)用McFW框架下的System _linkCreate()創(chuàng)建CaptureLink,調(diào)用System_linkStart()進(jìn)行視頻采集,模擬信號經(jīng)過主板上集成的4片TV5158解碼芯片之后轉(zhuǎn)換為16ChD1 YUV422i 60fps的數(shù)字信號傳遞給VPSS協(xié)處理器,等待下一步處理。
(2)視頻處理
VPSS協(xié)處理器檢測到視頻輸入以后,對輸入的視頻進(jìn)行降噪、去隔行處理等,然后將數(shù)據(jù)傳遞給HDVICP協(xié)處理器,DM8168內(nèi)部集成的3個HDVICP協(xié)處理器的視頻編解碼硬件加速支持MPEG4 H.264等視頻的編解碼格式,運(yùn)行在HDVICP上的視頻編碼子系統(tǒng)(Video Encode Subsyst em,VENC)以及視頻解碼子系統(tǒng)(Video Decode Subsystem,VDEC)具體實現(xiàn)16 Ch D1 60 fps的H.264編碼壓縮/解碼處理。
(3)視頻的存儲、顯示以及傳輸
HDVICP協(xié)處理器壓縮產(chǎn)生的視頻數(shù)據(jù),放入內(nèi)存共享區(qū),供ARM處理器進(jìn)行后期的網(wǎng)絡(luò)傳輸或本地存儲。同時,也將數(shù)據(jù)傳遞給HDVPSS協(xié)處理器實現(xiàn)16 Ch視頻的顯示輸出。
(4)視頻采集的銷毀
視頻采集結(jié)束后,HDVPSS首先調(diào)用System_link Stop()停止視頻采集,然后調(diào)用System_linkDelete()釋放占用資源。視頻采集編碼過程如圖4所示。
視頻的采集、降噪、壓縮編碼/解碼、顯示都由Host A8進(jìn)行控制,每個視頻采集過程中的功能都在各自處理上進(jìn)行了模塊的劃分,以獨(dú)立的線程運(yùn)行。各模塊間通過消息中斷、IPC等方式進(jìn)行通信,通過共享內(nèi)存實現(xiàn)數(shù)據(jù)共享。
3 結(jié)果測試與分析
本研究方法中,模擬視頻信號經(jīng)過主板上集成的4片TVP5158解碼芯片轉(zhuǎn)換為16Ch D1 YUV422i 60fps數(shù)字信號傳遞給HDVPSS協(xié)處理器進(jìn)行降噪、隔行掃描處理,數(shù)據(jù)預(yù)處理之后HDVPSS將數(shù)據(jù)傳送給HDVICP協(xié)處理器進(jìn)行視頻的H.264壓縮存儲,同時數(shù)據(jù)也由HDVPSS協(xié)處理器的HDMI數(shù)據(jù)輸出接口輸出到顯示器。多核CPU負(fù)載情況統(tǒng)計如表1所列。
實驗結(jié)果中,Host A8作為主控處理器,負(fù)責(zé)多核DSP的任務(wù)調(diào)度和協(xié)調(diào),HDVPSS以及HDVICP協(xié)處理器承擔(dān)了16 D1視頻的采集以及壓縮編碼工作,處理器負(fù)載較均衡。由于協(xié)處理器獨(dú)立承擔(dān)視頻的處理任務(wù),DSP在本設(shè)計中只負(fù)責(zé)SCD算法,負(fù)載較小。整體上來看,由于多核DSP DM8168的各個核心處理器之間相互協(xié)同工作,整個系統(tǒng)的負(fù)載較均衡,整個系統(tǒng)得到了有效的利用,且性能也比較突出。
結(jié)語
針對16通道D1數(shù)據(jù)格式的大數(shù)據(jù)量視頻數(shù)據(jù)置的采集編碼,在傳統(tǒng)達(dá)芬奇DSP處理器上實現(xiàn)相對較為困難,而本文針對基于多核DSP DM8 168將視頻的采集、降噪、隔行掃描以及壓縮編碼等任務(wù)從傳統(tǒng)的單核DSP處理器上獨(dú)立出來,分別由從硬件加速的HDVPSS協(xié)處理器和HDVICP協(xié)處理器來完成,極大地提升了視頻采集的效率,同時也減輕了單核DSP的任務(wù)負(fù)擔(dān),功能模塊化設(shè)計大大提升了嵌入式設(shè)備的整體處理能力,效果較為明顯。但從實際應(yīng)用的角度來考慮,本設(shè)計可能考慮得不夠全面,需在后期設(shè)計中不斷地充實和完善。
評論