胡志權(quán),楊斌
(西南交通大學(xué) 信息科學(xué)與技術(shù)學(xué)院,成都 610031)
基于多核DSP處理器DM8168的視頻處理方法
胡志權(quán),楊斌
(西南交通大學(xué) 信息科學(xué)與技術(shù)學(xué)院,成都 610031)
隨著1080P高清視頻以及4K超高清晰視頻的普及和應(yīng)用,基于傳統(tǒng)單核DSP處理器的視頻信息處理已有些力不從心。為此TI公司推出了一款專門用于高清視頻處理的多核DSP處理器,它擁有4個不同類型的處理器,使得視頻處理達(dá)到了一個更高水平。本文分析研究了該處理器的多核DSP結(jié)構(gòu)及應(yīng)用開發(fā)方法,并對多核間的協(xié)調(diào)工作及負(fù)載情況進(jìn)行了測試分析。
多核;DSP;協(xié)處理器;視頻采集
以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)行了測試和分析。
TMS320DM816是TI公司推出的達(dá)芬奇(DaVinci)硬件平臺。它在DM8168開發(fā)板上拓展了16路模擬輸入口,集成了多種外設(shè)接口。DM8168硬件平臺為TI的高性能異構(gòu)多核SoC片上系統(tǒng),該平臺集成了一個主頻為1.2 GHz的ARM Cortex-A8處理器,一個主頻為1 GHz的C674x DSP以及3個主頻為600 MHz高清視頻圖像協(xié)處理器(High Definition Video/Imaging Coprocessor,HDVICP),以及一個高清視頻處理子系統(tǒng)(Hight Definition Video Processing Subsystem,HDVPSS)。多核DSP系統(tǒng)應(yīng)用中,各處理器在硬件上相互獨立、相互配合,極大地提升了整個系統(tǒng)的效率。本文針對DM8168集成的4片TVP8158對16路60 fps視頻的采集壓縮過程進(jìn)行了研究,并對結(jié)果進(jìn)行了分析。硬件平臺結(jié)構(gòu)如圖1所示。
圖1 DM8168硬件結(jié)構(gòu)框圖
ARM Cortex-A8是一款專門針對多任務(wù)應(yīng)用的高性能哈佛結(jié)構(gòu)處理器。本文中ARM Cortex-A8處理器主要用于控制管理各個從處理器,配置和調(diào)節(jié)各子系統(tǒng)的協(xié)同工作,管理外部設(shè)備及外部存儲器。
HDVPSS集成了兩個獨立的視頻捕捉輸入端口VIN0、VIN1,每個VIN口又分為A、B兩組,即VIN0A、
VIN0B、VIN1A、VIN1B。每個TVP5158復(fù)合了4路視頻送入VIN口,HDVPSS采集到數(shù)據(jù)之后利用內(nèi)部硬件把視頻抽離分解出來進(jìn)行后期處理,捕捉時鐘高達(dá)165 MHz。此外,HDVPSS每個視頻輸入端口支持縮放、像素格式轉(zhuǎn)換、支持1路高達(dá)1080P60或8路復(fù)用的D1數(shù)據(jù)處理。功能上,HDVPSS集成了兩個視頻處理引擎,具有去隔行處理、降噪、格式轉(zhuǎn)換、視頻輸入/輸出等數(shù)據(jù)處理能力。
1.3 高清視頻協(xié)處理器HDVICP
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所示 。
圖2 HDVICP內(nèi)部結(jié)構(gòu)
在外部,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平臺上的高性能浮點數(shù)字信號處理器,其除了具有傳統(tǒng)DSP的硬件運(yùn)算加速器單元外,還具有SPLOOP、壓縮的指令集、增強(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)化。
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硬件平臺的特點,軟件系統(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所示。
圖3 軟件結(jié)構(gòu)設(shè)計
多通道視頻處理框架(Multi-channel FrameWork,McFW)中對視頻處理常用的捕獲、壓縮編碼、解碼、顯示等處理過程進(jìn)行了優(yōu)化,該框架下的視頻處理以Link為基本處理單位進(jìn)行。視頻傳遞采集、編碼以及顯示過程大致分為以下幾個過程。
(1) 原始采集過程
系統(tǒng)獲得采集任務(wù)之后,首先初始化采集參數(shù),包括采集設(shè)備的檢測、需采集的視頻格式、輸出格式等。稍后調(diào)用McFW框架下的System_linkCreate()創(chuàng)建Capture Link,調(diào)用System_linkStart()進(jìn)行視頻采集,模擬信號經(jīng)過主板上集成的4片TV5158解碼芯片之后轉(zhuǎn)換為16Ch D1 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 Subsystem,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_linkStop()停止視頻采集,然后調(diào)用System_linkDelete()釋放占用資源。視頻采集編碼過程如圖4所示。
圖4 視頻采集編碼過程
視頻的采集、降噪、壓縮編碼/解碼、顯示都由Host A8進(jìn)行控制,每個視頻采集過程中的功能都在各自處理上進(jìn)行了模塊的劃分,以獨立的線程運(yùn)行。各模塊間通過消息中斷、IPC等方式進(jìn)行通信,通過共享內(nèi)存實現(xiàn)數(shù)據(jù)共享。
本研究方法中,模擬視頻信號經(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所列。
表1 多核CPU負(fù)載情況統(tǒng)計
實驗結(jié)果中,Host A8作為主控處理器,負(fù)責(zé)多核DSP的任務(wù)調(diào)度和協(xié)調(diào),HDVPSS以及HDVICP協(xié)處理器承擔(dān)了16 D1視頻的采集以及壓縮編碼工作,處理器負(fù)載較均衡。由于協(xié)處理器獨立承擔(dān)視頻的處理任務(wù),DSP在本設(shè)計中只負(fù)責(zé)SCD算法,負(fù)載較小。整體上來看,由于多核DSP DM8168的各個核心處理器之間相互協(xié)同工作,整個系統(tǒng)的負(fù)載較均衡,整個系統(tǒng)得到了有效的利用,且性能也比較突出。
[1] TMS320DM816x DaVinci Digital Media Processors Technical Reference Manual [OL].[2014-02]. http://www.xzbu.com/8/view-1684521.htm .pdf.
[2] 劉仕翔.基于DM642 DSP的x264編碼器研究及實現(xiàn)[D].西安:西南交通大學(xué).2010.
[3] 楊振永,王延杰,孫海江,等.基于TMS320DM8168的SOC高清視頻處理系統(tǒng)的設(shè)計與實現(xiàn)[J].液晶與顯示,2013,28(5):764-769.
[4] 姜忠兵,羅鈞,楊曉花,等.基于TMS320DM8168的高清視頻編碼技術(shù)與實現(xiàn)[J].數(shù)據(jù)采集與處理,2012,27(6):690-695.
[5] 賈文全,李勇,王軍輝.基于TMS320DM8168硬件平臺的智能網(wǎng)絡(luò)視頻監(jiān)控系統(tǒng)[J].計算機(jī)與數(shù)字工程,2012,40(9):60-62.
[6] 呂明洲,陳耀武.基于異構(gòu)多核處理器的H.264并行編碼算法[J].計算機(jī)工程,2012,38(16):35-38.
Video Processing Method Based on Multi-core DSP Processor DM8168
Hu Zhiquan,Yang Bin
(School of Information Science & Technology, Southwest Jiaotong University, Chengdu 610031, China)
With the popularity and application of 1080P high-definition video and 4K ultra high-definition video, the video information processing based on traditional single-core DSP processor has been inadequate.TI's multi-core DSP processor for high-definition video processing has four different types of processors, so that the video processing has reached a higher level. This paper analyzes the multi-core DSP structure and application development methods of the processor, and tests the coordination work and load conditions of different processors.
multi-core;DSP;coprocessor; video capture
TP338
A
2014-02-28)