胡志權(quán),楊斌
(西南交通大學(xué) 信息科學(xué)與技術(shù)學(xué)院,成都 610031)
基于多核DSP處理器DM8168的視頻處理方法
胡志權(quán),楊斌
(西南交通大學(xué) 信息科學(xué)與技術(shù)學(xué)院,成都 610031)
隨著1080P高清視頻以及4K超高清晰視頻的普及和應(yīng)用,基于傳統(tǒng)單核DSP處理器的視頻信息處理已有些力不從心。為此TI公司推出了一款專(zhuān)門(mén)用于高清視頻處理的多核DSP處理器,它擁有4個(gè)不同類(lèi)型的處理器,使得視頻處理達(dá)到了一個(gè)更高水平。本文分析研究了該處理器的多核DSP結(jié)構(gòu)及應(yīng)用開(kāi)發(fā)方法,并對(duì)多核間的協(xié)調(diào)工作及負(fù)載情況進(jìn)行了測(cè)試分析。
多核;DSP;協(xié)處理器;視頻采集
以DSP為核心的處理器憑借自身硬件結(jié)構(gòu)的優(yōu)勢(shì)和算法優(yōu)化使得一般的嵌入式產(chǎn)品在視頻應(yīng)用領(lǐng)域得到了廣泛的應(yīng)用。隨著高清視頻應(yīng)用的增多,傳統(tǒng)單核DSP處理器已經(jīng)不能很好地滿(mǎn)足應(yīng)用需求了。為此,TI公司推出了一款專(zhuān)門(mén)針對(duì)高清大數(shù)據(jù)量快速計(jì)算的專(zhuān)用多核DSP處理器DM8168。與傳統(tǒng)單核DSP或ARM+DSP的異構(gòu)多核結(jié)構(gòu)相比,DM8168集成了4個(gè)不同類(lèi)型的處理器,除了傳統(tǒng)ARM+DSP結(jié)構(gòu)外,DM8168還擁有兩個(gè)專(zhuān)門(mén)針對(duì)高清視頻的圖像處理器。因此,研究如何基于這種復(fù)雜的多核DSP進(jìn)行應(yīng)用設(shè)計(jì),是有一定實(shí)用價(jià)值的。
本文在一款基于多核DSP DM8168處理器的SEED-DVS8168平臺(tái)上,研究了16通道 D1數(shù)據(jù)格式60 fps的大數(shù)據(jù)量高速視頻采集及壓縮的實(shí)現(xiàn)方法,并且對(duì)DM8168實(shí)現(xiàn)過(guò)程中4個(gè)核心處理器的負(fù)載進(jìn)行了測(cè)試和分析。
TMS320DM816是TI公司推出的達(dá)芬奇(DaVinci)硬件平臺(tái)。它在DM8168開(kāi)發(fā)板上拓展了16路模擬輸入口,集成了多種外設(shè)接口。DM8168硬件平臺(tái)為T(mén)I的高性能異構(gòu)多核SoC片上系統(tǒng),該平臺(tái)集成了一個(gè)主頻為1.2 GHz的ARM Cortex-A8處理器,一個(gè)主頻為1 GHz的C674x DSP以及3個(gè)主頻為600 MHz高清視頻圖像協(xié)處理器(High Definition Video/Imaging Coprocessor,HDVICP),以及一個(gè)高清視頻處理子系統(tǒng)(Hight Definition Video Processing Subsystem,HDVPSS)。多核DSP系統(tǒng)應(yīng)用中,各處理器在硬件上相互獨(dú)立、相互配合,極大地提升了整個(gè)系統(tǒng)的效率。本文針對(duì)DM8168集成的4片TVP8158對(duì)16路60 fps視頻的采集壓縮過(guò)程進(jìn)行了研究,并對(duì)結(jié)果進(jìn)行了分析。硬件平臺(tái)結(jié)構(gòu)如圖1所示。

圖1 DM8168硬件結(jié)構(gòu)框圖
ARM Cortex-A8是一款專(zhuān)門(mén)針對(duì)多任務(wù)應(yīng)用的高性能哈佛結(jié)構(gòu)處理器。本文中ARM Cortex-A8處理器主要用于控制管理各個(gè)從處理器,配置和調(diào)節(jié)各子系統(tǒng)的協(xié)同工作,管理外部設(shè)備及外部存儲(chǔ)器。
HDVPSS集成了兩個(gè)獨(dú)立的視頻捕捉輸入端口VIN0、VIN1,每個(gè)VIN口又分為A、B兩組,即VIN0A、
VIN0B、VIN1A、VIN1B。每個(gè)TVP5158復(fù)合了4路視頻送入VIN口,HDVPSS采集到數(shù)據(jù)之后利用內(nèi)部硬件把視頻抽離分解出來(lái)進(jìn)行后期處理,捕捉時(shí)鐘高達(dá)165 MHz。此外,HDVPSS每個(gè)視頻輸入端口支持縮放、像素格式轉(zhuǎn)換、支持1路高達(dá)1080P60或8路復(fù)用的D1數(shù)據(jù)處理。功能上,HDVPSS集成了兩個(gè)視頻處理引擎,具有去隔行處理、降噪、格式轉(zhuǎn)換、視頻輸入/輸出等數(shù)據(jù)處理能力。
1.3 高清視頻協(xié)處理器HDVICP
HDVICP是一個(gè)視頻編解碼硬件加速器,可以最大支持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)動(dòng)估計(jì)加速引擎、幀內(nèi)預(yù)測(cè)估計(jì)引擎、熵編/解碼器等硬件模塊。HDVICP直接在硬件上提升了原本復(fù)雜的數(shù)字圖像處理運(yùn)算,從而增強(qiáng)了HDVICP的視頻處理能力。HDVICP的內(nèi)部結(jié)構(gòu)如圖2所示 。

圖2 HDVICP內(nèi)部結(jié)構(gòu)
在外部,HDVICP與其他處理器之間通過(guò)郵箱中斷以及硬件自旋鎖來(lái)實(shí)現(xiàn)。郵箱中斷通過(guò)寫(xiě)寄存器的方式向某個(gè)從處理器發(fā)送中斷信號(hào),自旋鎖機(jī)制則為訪(fǎng)問(wèn)系統(tǒng)共享資源提供了完善的解決方案;內(nèi)部,同步箱負(fù)責(zé)所有嵌入式模塊的調(diào)度,同步各加速器之間的參數(shù)以及數(shù)據(jù)。
1.4 數(shù)字信號(hào)處理DSP
C674x DSP內(nèi)核是TMS320C6000 DSP平臺(tái)上的高性能浮點(diǎn)數(shù)字信號(hào)處理器,其除了具有傳統(tǒng)DSP的硬件運(yùn)算加速器單元外,還具有SPLOOP、壓縮的指令集、增強(qiáng)的指令集、異常處理以及優(yōu)先級(jí)管理,完備的硬件支持使得C674x DSP在應(yīng)用中具有強(qiáng)大地?cái)?shù)據(jù)信號(hào)處理能力。本系統(tǒng)研究中將傳統(tǒng)的視頻采集及壓縮編碼這類(lèi)算法從DSP模塊中分離出來(lái),極大地減輕了DSP的負(fù)載,使多核DSP協(xié)同工作的環(huán)境、性能得到了極大的優(yōu)化。
DM8168的主處理器是ARM Cortex-A8,開(kāi)始上電之后U-Boot引導(dǎo)其從ROM中啟動(dòng)Linux,一旦啟動(dòng)成功,ARM Cortex-A8便引導(dǎo)從處理器C674x DSP和媒體控制器的電源管理、重啟控制以及設(shè)置可執(zhí)行文件的入口到相應(yīng)寄存器中,完成這個(gè)軟件運(yùn)行環(huán)境的建立。
結(jié)合DM8168硬件平臺(tái)的特點(diǎn),軟件系統(tǒng)整體劃分為4個(gè)模塊。其中ARM為主控模塊,運(yùn)行Linux系統(tǒng),主要負(fù)責(zé)整個(gè)系統(tǒng)的控制以及外設(shè)管理;另外3個(gè)內(nèi)核運(yùn)行BIOS6系統(tǒng),其中VPSS M3運(yùn)行在HDVPSS上,主要管理視頻的采集、存儲(chǔ)以及輸入/輸出;Video M3運(yùn)行在HDVICP上,主要負(fù)責(zé)視頻的編解碼;C674x DSP主要執(zhí)行軟件的顯示策略以及用戶(hù)算法。軟件結(jié)構(gòu)設(shè)計(jì)如圖3所示。

圖3 軟件結(jié)構(gòu)設(shè)計(jì)
多通道視頻處理框架(Multi-channel FrameWork,McFW)中對(duì)視頻處理常用的捕獲、壓縮編碼、解碼、顯示等處理過(guò)程進(jìn)行了優(yōu)化,該框架下的視頻處理以L(fǎng)ink為基本處理單位進(jìn)行。視頻傳遞采集、編碼以及顯示過(guò)程大致分為以下幾個(gè)過(guò)程。
(1) 原始采集過(guò)程
系統(tǒng)獲得采集任務(wù)之后,首先初始化采集參數(shù),包括采集設(shè)備的檢測(cè)、需采集的視頻格式、輸出格式等。稍后調(diào)用McFW框架下的System_linkCreate()創(chuàng)建Capture Link,調(diào)用System_linkStart()進(jìn)行視頻采集,模擬信號(hào)經(jīng)過(guò)主板上集成的4片TV5158解碼芯片之后轉(zhuǎn)換為16Ch D1 YUV422i 60fps的數(shù)字信號(hào)傳遞給VPSS協(xié)處理器,等待下一步處理。
(2) 視頻處理
VPSS協(xié)處理器檢測(cè)到視頻輸入以后,對(duì)輸入的視頻進(jìn)行降噪、去隔行處理等,然后將數(shù)據(jù)傳遞給HDVICP協(xié)處理器,DM8168內(nèi)部集成的3個(gè)HDVICP協(xié)處理器的視頻編解碼硬件加速支持MPEG4 H.264等視頻的編解碼格式,運(yùn)行在HDVICP上的視頻編碼子系統(tǒng)(Video Encode Subsystem,VENC)以及視頻解碼子系統(tǒng)(Video Decode Subsystem,VDEC)具體實(shí)現(xiàn)16 Ch D1 60 fps的H.264 編碼壓縮/解碼處理。
(3) 視頻的存儲(chǔ)、顯示以及傳輸
HDVICP協(xié)處理器壓縮產(chǎn)生的視頻數(shù)據(jù),放入內(nèi)存共享區(qū),供ARM處理器進(jìn)行后期的網(wǎng)絡(luò)傳輸或本地存儲(chǔ)。同時(shí),也將數(shù)據(jù)傳遞給HDVPSS協(xié)處理器實(shí)現(xiàn)16 Ch視頻的顯示輸出。
(4) 視頻采集的銷(xiāo)毀
視頻采集結(jié)束后,HDVPSS首先調(diào)用System_linkStop()停止視頻采集,然后調(diào)用System_linkDelete()釋放占用資源。視頻采集編碼過(guò)程如圖4所示。

圖4 視頻采集編碼過(guò)程
視頻的采集、降噪、壓縮編碼/解碼、顯示都由Host A8進(jìn)行控制,每個(gè)視頻采集過(guò)程中的功能都在各自處理上進(jìn)行了模塊的劃分,以獨(dú)立的線(xiàn)程運(yùn)行。各模塊間通過(guò)消息中斷、IPC等方式進(jìn)行通信,通過(guò)共享內(nèi)存實(shí)現(xiàn)數(shù)據(jù)共享。
本研究方法中,模擬視頻信號(hào)經(jīng)過(guò)主板上集成的4片TVP5158解碼芯片轉(zhuǎn)換為16Ch D1 YUV422i 60fps數(shù)字信號(hào)傳遞給HDVPSS協(xié)處理器進(jìn)行降噪、隔行掃描處理,數(shù)據(jù)預(yù)處理之后HDVPSS將數(shù)據(jù)傳送給HDVICP協(xié)處理器進(jìn)行視頻的H.264壓縮存儲(chǔ),同時(shí)數(shù)據(jù)也由HDVPSS協(xié)處理器的HDMI數(shù)據(jù)輸出接口輸出到顯示器。多核CPU負(fù)載情況統(tǒng)計(jì)如表1所列。

表1 多核CPU負(fù)載情況統(tǒng)計(jì)
實(shí)驗(yàn)結(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è)計(jì)中只負(fù)責(zé)SCD算法,負(fù)載較小。整體上來(lái)看,由于多核DSP DM8168的各個(gè)核心處理器之間相互協(xié)同工作,整個(gè)系統(tǒng)的負(fù)載較均衡,整個(gè)系統(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編碼器研究及實(shí)現(xiàn)[D].西安:西南交通大學(xué).2010.
[3] 楊振永,王延杰,孫海江,等.基于TMS320DM8168的SOC高清視頻處理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].液晶與顯示,2013,28(5):764-769.
[4] 姜忠兵,羅鈞,楊曉花,等.基于TMS320DM8168的高清視頻編碼技術(shù)與實(shí)現(xiàn)[J].數(shù)據(jù)采集與處理,2012,27(6):690-695.
[5] 賈文全,李勇,王軍輝.基于TMS320DM8168硬件平臺(tái)的智能網(wǎng)絡(luò)視頻監(jiān)控系統(tǒng)[J].計(jì)算機(jī)與數(shù)字工程,2012,40(9):60-62.
[6] 呂明洲,陳耀武.基于異構(gòu)多核處理器的H.264并行編碼算法[J].計(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)