當(dāng)前位置:首頁(yè) > 單片機(jī) > 單片機(jī)
[導(dǎo)讀]本文主要討論基于TI公司C64系列DSP的視頻解碼算法在系統(tǒng)優(yōu)化過程中需要考慮的若干因素。

近年來,對(duì)數(shù)字視頻產(chǎn)品的需求增長(zhǎng)迅速。數(shù)字視頻產(chǎn)品的主流應(yīng)用包括視頻通信、視頻監(jiān)控與工業(yè)自動(dòng)化,最熱門的則為娛樂應(yīng)用,如 DVD、HDTV、衛(wèi)星電視、標(biāo)清(SD)或高清(HD)機(jī)頂盒、數(shù)碼相機(jī)與HD攝像機(jī)、高端顯示器(LCD、等離子顯示器、DLP)以及個(gè)人攝像機(jī)等。這些應(yīng)用對(duì)高質(zhì)量的視頻編解碼算法及其標(biāo)準(zhǔn)提出更高要求。目前的主流壓縮標(biāo)準(zhǔn)主要有MPEG2、MPEG4和H.264/AVC,而針對(duì)這些編解碼標(biāo)準(zhǔn)有各種各樣的實(shí)現(xiàn)方案。本文主要討論基于TI公司C64系列DSP的視頻解碼算法在系統(tǒng)優(yōu)化過程中需要考慮的若干因素。

TI的C64系列DSP以其強(qiáng)大的處理能力被廣泛用于視頻處理領(lǐng)域,但由于使用者對(duì)C64系列DSP的結(jié)構(gòu)、指令的理解程度不一樣,造成算法的實(shí)現(xiàn)效果有許多差異。具體體現(xiàn)在實(shí)現(xiàn)算法時(shí)所占用的CPU資源上,例如實(shí)現(xiàn)H.264 MP@D1解碼時(shí)所占用CPU的資源將有所差異;或者體現(xiàn)在所包含的算法工具子集上,例如實(shí)現(xiàn)H.264 MP@D1解碼時(shí)使用CAVLC而不是CABAC。

造成這些差異的主要原因有:算法關(guān)鍵模塊的優(yōu)化;算法系統(tǒng)集成時(shí)內(nèi)存的管理;算法系統(tǒng)集成時(shí)EDMA的資源分配管理。本文將從這三方面探討算法優(yōu)化集成過程中需要考慮的因素。

算法關(guān)鍵模塊的優(yōu)化

一般而言,針對(duì)目前主流視頻解壓縮標(biāo)準(zhǔn)都有非常消耗DSP CPU資源的模塊,如H.264/AVC、MPEG4、AVS等編碼中的運(yùn)動(dòng)矢量搜索就非常占用資源,而且這些模塊在整個(gè)系統(tǒng)實(shí)現(xiàn)過程中還被頻繁調(diào)用,因此我們應(yīng)首先找出這些模塊。TI的CCS提供了工程剖析工具(Profile),可以很快找到整個(gè)工程中占用DSP CPU資源最多的模塊,然后對(duì)這些模塊進(jìn)行優(yōu)化。

對(duì)這些關(guān)鍵算法模塊的優(yōu)化可以分三步進(jìn)行。如圖1所示,先認(rèn)真分析這部分代碼,并進(jìn)行相應(yīng)的調(diào)整,例如盡量減少有判斷跳轉(zhuǎn)的代碼,特別是在for循環(huán)中,因?yàn)榕袛嗵D(zhuǎn)會(huì)打斷軟件流水。可以用查表或者用_cmpgtu4、_cmpeq4等Intrinsics來代替比較判斷指令,從而巧妙地替代判斷跳轉(zhuǎn)語(yǔ)句。同時(shí)還可以采用TI的CCS中所提供的#pragma,為編譯器提供盡量多的信息。這些信息包括for循環(huán)的次數(shù)信息、數(shù)據(jù)對(duì)齊信息等。如果經(jīng)過這部分優(yōu)化后還無法滿足系統(tǒng)要求,則對(duì)這部分模塊使用線性匯編來實(shí)現(xiàn)。

線性匯編是介于C和匯編之間的一種語(yǔ)言實(shí)現(xiàn)形式,可以控制指令的使用,而不必特別關(guān)心寄存器和功能單元(S、D、M、L)的分配和使用。使用線性匯編一般會(huì)比使用C語(yǔ)言具有更高的執(zhí)行效率。如果線性匯編無法滿足要求,則使用匯編實(shí)現(xiàn)。為編寫高并行、深軟件流水的匯編,需要經(jīng)過創(chuàng)建相關(guān)圖、時(shí)序表(Scheduling table)等步驟,由于篇幅所限,這里就不再討論。

當(dāng)運(yùn)動(dòng)搜索中需要計(jì)算16×16宏塊的SAD值時(shí),在不同方式下消耗的DSP CPU的周期數(shù):使用C+Intrinsics需要83個(gè)周期,使用線性匯編需要74個(gè)周期,而使用匯編只需要57個(gè)周期。由此可見,匯編實(shí)現(xiàn)所消耗的CPU周期數(shù)最少,但前提是要充分了解DSP CPU的結(jié)構(gòu)、指令以及算法模塊的結(jié)構(gòu),以編寫出高并行、深軟件流水的匯編,否則所寫出的匯編有可能還沒有線性匯編或者C的效率高。一個(gè)行之有效的方法是,充分利用TI所提供的算法庫(kù)中的函數(shù),因?yàn)樗惴◣?kù)中的函數(shù)都是已經(jīng)充分優(yōu)化過的算法模塊,而且大都提供對(duì)應(yīng)的C、線性匯編和匯編源代碼,并有文檔進(jìn)行API介紹。

點(diǎn)擊放大
圖1:基于TI DSP的視頻算法關(guān)鍵模塊的優(yōu)化步驟(左);圖2:基于TI DSP的視頻算法的優(yōu)化集成過程(右)。

算法系統(tǒng)集成時(shí)內(nèi)存的管理

由于在基于DSP的嵌入式系統(tǒng)開發(fā)中,存儲(chǔ)資源特別是片內(nèi)高速存儲(chǔ)資源有限。在算法系統(tǒng)集成時(shí)內(nèi)存的管理對(duì)于整個(gè)系統(tǒng)的優(yōu)化非常重要,它一方面將影響數(shù)據(jù)的讀取、搬移速度;另一方面還將影響緩存的命中率。下面從程序和數(shù)據(jù)兩方面進(jìn)行分析。

程序區(qū):最大原則是將經(jīng)常調(diào)度使用的算法模塊放片內(nèi)。為達(dá)到這一目標(biāo),TI的CCS中提供了#pragma CODE_SECTION,可以把需要單獨(dú)控制存放的函數(shù)段從.text段中獨(dú)立出來,從而在.cmd文件中對(duì)這些函數(shù)段進(jìn)行單獨(dú)物理地址映射。還可以使用動(dòng)態(tài)控制的方式,將需要運(yùn)行的代碼段先調(diào)度到片內(nèi)內(nèi)存中。例如,H.264/AVC中CAVLC和CABAC兩個(gè)算法模塊具有互斥性,可以將這兩個(gè)算法模塊放在片外,且對(duì)應(yīng)于片內(nèi)同一塊運(yùn)行區(qū),在運(yùn)行其中某一個(gè)算法模塊之前,先將其調(diào)入片內(nèi),從而充分利用片內(nèi)有限的高速存儲(chǔ)區(qū)。

對(duì)于程序區(qū)的管理,考慮到一級(jí)程序緩存(L1 P)的命中率,最好將具有先后執(zhí)行順序的函數(shù)按地址先后順序配置在程序空間中,同時(shí)將代碼量比較大的處理函數(shù)拆分成小函數(shù)。

數(shù)據(jù)區(qū):在視頻標(biāo)準(zhǔn)編解碼中,由于數(shù)據(jù)塊都很大,比如一幀D1 4:2:0的圖像有622KB,而且在編解碼中都需要3~5幀甚至更多的緩沖幀,所以數(shù)據(jù)基本上無法在片內(nèi)存放。因此,在系統(tǒng)的內(nèi)存優(yōu)化管理中,需要用到C64系列DSP的二級(jí)緩存(對(duì)TMS320DM642來說,用于視頻編解碼的二級(jí)緩存采用64KB的情況比較多)。此外,最好將放在片外、被緩存所映射的視頻緩沖區(qū)的數(shù)據(jù)以128字節(jié)對(duì)齊,這是因?yàn)镃64系列DSP的二級(jí)緩存的每行大小為128字節(jié),以128字節(jié)對(duì)齊有利于緩存的刷新和一致性維護(hù)。

系統(tǒng)使用EDMA的情況以及需占用EDMA物理總線的時(shí)間。

算法系統(tǒng)集成時(shí)EDMA的資源分配管理

由于在視頻處理中,經(jīng)常有塊數(shù)據(jù)的搬移,而且C64系列DSP提供了EDMA,邏輯上有64個(gè)通道,因此對(duì)EDMA的配置使用對(duì)優(yōu)化系統(tǒng)是非常重要的??梢允褂孟率霾襟E充分配置系統(tǒng)的EDMA資源。

1. 統(tǒng)計(jì)系統(tǒng)中需要使用EDMA的各種情況及其需要占用EDMA物理總線的大概時(shí)間,如表所示。該表給出的數(shù)據(jù)適合以下條件:視頻通過視頻端口(720×480,4:2:0,30幀/秒),音頻通過McBSP(采樣率為44k)進(jìn)入DSP,壓縮后的數(shù)據(jù)數(shù)率在2Mbps左右,數(shù)據(jù)通過PCI每488us輸出一個(gè)128字節(jié)的包(PCI口工作頻率為33MHz),外置SDRAM的時(shí)鐘頻率為133MHz。

2. 統(tǒng)計(jì)好這些信息后,需要根據(jù)系統(tǒng)對(duì)各種碼流實(shí)時(shí)性及其傳輸數(shù)據(jù)塊大小,對(duì)各個(gè)被使用的EDMA通道進(jìn)行優(yōu)先級(jí)分配。一般而言,音頻流傳輸塊小,占用EDMA總線的時(shí)間短,而視頻傳輸塊比較大,在占用EDMA總線的時(shí)間較長(zhǎng),因此將輸入音頻所對(duì)應(yīng)的EDMA通道的優(yōu)先級(jí)設(shè)定為Q0(緊急),視頻所對(duì)應(yīng)的優(yōu)先級(jí)設(shè)定為Q2(中等),輸出碼流所對(duì)應(yīng)的優(yōu)先級(jí)設(shè)定為Q1(高),音視頻算法處理中所調(diào)度的QDMA的優(yōu)先級(jí)設(shè)定為Q3(低)。當(dāng)然,在真正的系統(tǒng)應(yīng)用中,可能還需要調(diào)節(jié)這些設(shè)置。

實(shí)際上,基于TI DSP的視頻算法的優(yōu)化集成過程,將根據(jù)圖2所示的步驟進(jìn)行。首先初步配置內(nèi)存,并選擇相應(yīng)編譯優(yōu)化選項(xiàng),如果編譯的結(jié)果已經(jīng)可以達(dá)到實(shí)時(shí)性要求就結(jié)束后面的優(yōu)化,否則開始優(yōu)化內(nèi)存和EDMA的配置,從而提高對(duì)緩存和內(nèi)部總線的利用率。如果還無法達(dá)到要求,則通過剖析整個(gè)工程確定消耗CPU資源最高的代碼段或者函數(shù),對(duì)這些關(guān)鍵模塊進(jìn)行優(yōu)化,并采用線性匯編、甚至匯編直到整個(gè)系統(tǒng)滿足要求為止。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉