文獻標識碼:A
文章編號:0258-7998(2014)04-0008-03
視頻會議系統(tǒng)因其便捷、高效、經(jīng)濟、安全等特點,在政府、軍事、商貿(mào)、醫(yī)療、教育等部門有著廣泛的應用和需求。隨著通信技術(shù)和計算機技術(shù)的不斷發(fā)展,實現(xiàn)高集成度、低成本的嵌入式視頻會議系統(tǒng)方案已成為可能[1]。
在基于TMS320DM8168達芬奇多核處理器的嵌入式視頻會議媒體服務器的語音編解碼器解決方案中,視頻流的編解碼處理可以使用芯片內(nèi)部的專用高清視頻協(xié)處理器(HVICP2)高效完成[2]。而語音流的編解碼處理需要在DSP中自行設計編解碼處理算法完成。此外,還需要提供一種支持ARM端遠程控制并調(diào)用DSP端算法的解決方案。
本文討論G.722編解碼器在DM8168上的C674x DSP核的實現(xiàn)和優(yōu)化策略,并將實現(xiàn)的G.722編解碼算法封裝為標準的xDM模塊。此外,本文還介紹一種ARM端調(diào)用DSP執(zhí)行該算法的方案:利用達芬奇技術(shù)的特性,通過遠程處理器執(zhí)行(RPE)機制,在ARM端成功調(diào)用DSP上的編解碼模塊。實驗和測試結(jié)果表明,該算法和集成方案可以滿足視頻會議媒體服務器中的語音編解碼處理的功能需求。
1 視頻會議媒體服務器系統(tǒng)方案
本設計中,嵌入式視頻會議媒體服務器主芯片選用德州儀器公司新近推出的達芬奇系列多媒體處理芯片TMS320DM8168。該芯片上集成了1個1.2 GHz的ARM Cortex A8、1個1 GHz的浮定點兼容的C674x DSP、3個高清視頻圖像協(xié)處理器(HDVICP2)以及大量的外設單元。其中片上集成的3個HDVICP2處理器可以進行3路獨立的1 080 p、60 f/s的H.264編碼或解碼,或者更多路低分辨率、低幀速率的編碼或解碼。DSP則用來做定制算法的開發(fā)。在嵌入式視頻會議媒體服務器的系統(tǒng)設計中采用ARM+HVICP2+DSP的異質(zhì)多核架構(gòu),既能夠保持系統(tǒng)構(gòu)建的靈活性,又能提供強大的處理能力。
嵌入式視頻會議媒體服務器的主要功能是:從會議預先商定的多個網(wǎng)絡端口獲取來自不同會議終端的視頻流,并將遵循H.264編碼標準的視頻流解碼后進行混合拼接,將拼接結(jié)果重新編碼后通過指定網(wǎng)絡端口分別發(fā)至各會議終端。語音流的處理類似,媒體服務器將來自各終端的G.722語音流解碼后,完成混音疊加,再將不同的混音結(jié)果按照G.722標準編碼發(fā)送至各與會終端。
本系統(tǒng)的處理框圖如圖1所示。以太網(wǎng)上解包獲得的多路H.264視頻流的編解碼處理全交由片上的HVICP2處理器來完成。ARM端負責系統(tǒng)高層信息流控制和各通道解碼后YUV視頻流的混合拼接,以及語音流的混音疊加功能。本文將著重介紹DSP端的G.722編解碼算法實現(xiàn)、優(yōu)化,以及在ARM端的調(diào)用框架。
圖3所示為G.722解碼器框圖[3],由于解碼器的構(gòu)成與編碼器的構(gòu)成有較強的對稱性,在此不再贅述。
2.2 G.722算法優(yōu)化方案
在本設計中,系統(tǒng)同時存在多路語音輸入,需要實例化多個G.722解碼模塊。為在保證實時性的同時節(jié)省計算資源,有必要研究提升算法性能的方法。由于G.722算法是在DM8168內(nèi)部集成的C674x DSP內(nèi)核上實現(xiàn),所以可以通過改進算法的數(shù)據(jù)結(jié)構(gòu)和DSP操作順序,充分利用C674x內(nèi)核的并行性和按字處理的機制,提高算法執(zhí)行效率。
G.722編碼器和解碼器的正交鏡像濾波器具有一定的對稱性,結(jié)合C674x DSP的特點,可以對正交鏡像濾波器進行改進。
如圖4所示,以編碼端為例,編碼正交鏡像濾波器執(zhí)行子帶采樣和濾波,需要按照式(1)~式(4)對輸入xin進行濾波處理,生成xL和xH,即兩個子帶自適應脈沖調(diào)制編碼器的輸入。系統(tǒng)輸入的xin為16 bit寬度的有符號整型變量,在內(nèi)存空間中連續(xù)存儲,可以直接使用DSP 32 bit內(nèi)存訪問指令,一次載入兩個16 bit數(shù)據(jù)(圖4中I)。同時注意到在系統(tǒng)中,奇數(shù)序號的移位寄存器單元(x[2k+1])僅影響奇數(shù)部分(圖4左半部分)濾波器的輸出xodd,偶數(shù)移位寄存器單元僅影響偶數(shù)部分(圖4右半部分)濾波器輸出xeven,移位寄存器工作時也可以按照32 bit數(shù)直接處理(圖4中II)。此外,在進行濾波的乘累加運算時,若將兩個相鄰的16 bit奇數(shù)寄存器(如:x[23]和x[21])數(shù)據(jù)和兩個相鄰的濾波器系數(shù)(如:h[0]和h[1])數(shù)據(jù)分組后,分別以32 bit形式存儲,則可運用C674x DSP提供的半字乘加運算DOTP2,用一個指令完成兩次乘運算和一個加運算(圖4中III、IV)。使用圖4的結(jié)構(gòu)可以減少DSP在進行編碼正交鏡像濾波時的所需的指令數(shù)。同樣,改進手段也適用于解碼部分的正交鏡像濾波器。
表1列出了幾種不同優(yōu)化情況下,編解碼器核心處理函數(shù)處理長度為10 ms的單幀語音數(shù)據(jù)時,C674x DSP上的執(zhí)行指令數(shù)對比。
從運行指令數(shù)可以看出,結(jié)合-o2編譯選項和本文提出的代碼優(yōu)化方案后可以大幅度縮減算法執(zhí)行所需的周期,提高算法性能。
3 G.722語音處理算法集成
3.1 xDM算法標準封裝
出于系統(tǒng)開發(fā)和集成的考慮,在達芬奇平臺上進行DSP算法開發(fā)時需要遵循一定的標準規(guī)范,即TI提出的DSP算法標準xDAIS。xDAIS標準是一個龐大的體系,TI在此基礎上進行擴展,提供一個輕量級的算法標準框架xDM(xDAIS for Digital Media)。使用xDM標準可以較快速地將一個開發(fā)者自定義的算法實體集成至達芬奇系統(tǒng)。
本設計中,按照xDMiUniversal接口標準,通過修改數(shù)據(jù)結(jié)構(gòu)和上層處理調(diào)用接口,將G.722語音編解碼算法代碼分別封裝為G722ENC和G722DEC兩個xDM算法包。
3.2 遠程調(diào)用機制
在達芬奇處理器的軟件結(jié)構(gòu)中,ARM負責運行嵌入式Linux操作系統(tǒng),主控系統(tǒng)信流,調(diào)度資源并分配任務。在如上以ARM為主核的機制下,為使ARM能夠調(diào)度DSP執(zhí)行特定的算法操作,需要一種跨內(nèi)核的算法調(diào)度機制?;赥I提供的Codec Engine(CE)方案是實現(xiàn)該跨核調(diào)度機制的一種方法[4]。然而,在本視頻會議系統(tǒng)中,由于多路視頻處理的需要,底層選取的多通道處理框架McFw(Multichannel Framework)與Codec Engine并不兼容。因此,本設計方案選取了遠程處理器執(zhí)行框架RPE(Remote Processor Execution)來實現(xiàn)ARM對DSP的跨核調(diào)度功能。
如圖5所示,虛線框內(nèi)是RPE框架。RPE客戶端可以通過xDM解編函數(shù)將RPE操作接口執(zhí)行的操作傳輸?shù)较㈥犃?;DSP端的RPE根服務器和RPE實例服務器將檢查消息隊列并控制xDM算法服務器,創(chuàng)建或調(diào)用某個特定的xDM算法實例。所以ARM調(diào)用DSP執(zhí)行算法的實質(zhì)是:ARM端通過本地調(diào)用RPE操作接口,RPE通過底層的消息隊列機制傳輸操作消息,由xDM解編函數(shù)完成地址轉(zhuǎn)換和參數(shù)傳遞,控制DSP端RPE服務器框架加載并執(zhí)行指定的xDM算法實例。
3.3 編解碼器集成性能測試
實際系統(tǒng)中需要在ARM端完成對G.722編解碼器的調(diào)用,同時統(tǒng)計RPE框架和DSP語音數(shù)據(jù)處理的實際性能,以確保系統(tǒng)對語音處理的實時性。測試中選取的語音測試向量單幀緩存長度為10 ms,對應的編碼器和解碼器輸入數(shù)據(jù)緩存長度分別為320 B和80 B。ARM端通過RPE機制分別調(diào)用G.722編解碼模塊處理對應長度緩存的10 000幀數(shù)據(jù),統(tǒng)計計算RPE調(diào)用和G.722編解碼所需的總時間以及處理單幀所需的平均時間。測試方法如圖6所示。
實際測試結(jié)果表明,使用本文提出的代碼優(yōu)化方案后編解碼處理效率有明顯提高,所需計算資源減少。而且處理單幀數(shù)據(jù)所需時間遠小于數(shù)據(jù)間隔(10 ms),可以滿足系統(tǒng)實時性的要求,在多線程的處理處理條件下,可以更大程度上節(jié)省DSP的計算開銷。
利用TMS320DM8168達芬奇處理器構(gòu)建嵌入式視頻會議媒體服務器時,視頻流編解碼處理可以由專用的視頻協(xié)處理器HVICP2完成,而語音G.722編解碼器則需要利用片上資源自行設計實現(xiàn)。本文介紹了G.722編碼器和解碼器在片內(nèi)DSP核上的實現(xiàn),并根據(jù)TI C674x DSP核的特點改進了正交鏡像濾波的流程,提升了算法運行效率。同時還介紹了G.722編解碼器的xDM算法封裝技術(shù),通過RPE架構(gòu),成功在ARM端應用程序調(diào)用DSP執(zhí)行G.722編解碼。編解碼實驗和嵌入式視頻會議系統(tǒng)實際運行測試表明,該集成框架和編解碼算法處理數(shù)據(jù)速度快,精度高,完全能夠滿足嵌入式視頻會議系統(tǒng)中多路語音實時編解碼處理功能的要求。
參考文獻
[1] TALLA D,GOLSTON J.Using DaVinci technology for digital video devices[J].IEEE Journals & Magazines,2007(40):53-61.
[2] Texas Instrument Incorporated.TMS320DM816x DaVinci video processors(Rev D)[R].Dallas:Texas Instruments Inc.2013.
[3] ITU.Recommendation ITU-T G.722:7 kHz audio-coding within 64 kbit/s[S].Geneva,2012.
[4] Kong Xiangping,Lin Hezhi,Huang Lianfen.Implementation of G.729 codec based on DaVinci technology[C].International Conference on Multimedia and Information Technology,Chiang Tailand,2008:11-40.
[5] 陳發(fā)堂,郭麗強.ARM+DSP嵌入式系統(tǒng)BootLoader在LTE中的實現(xiàn)[J].電子技術(shù)應用,2013,39(5):25-28.