當(dāng)前位置:首頁(yè) > 電源 > 數(shù)字電源
[導(dǎo)讀]研究了H.264編碼關(guān)鍵技術(shù)的實(shí)現(xiàn),并結(jié)合ADSP-BF561的特點(diǎn)提出了有效的優(yōu)化方案,包括幀內(nèi)幀間快速算法、存儲(chǔ)空間分配、Cache應(yīng)用、C和匯編語(yǔ)言優(yōu)化等。測(cè)試結(jié)果表明,優(yōu)化后的算法編碼效率得到顯著提高。

目前,音視頻技術(shù)日新月異,其中,視頻實(shí)時(shí)編碼傳輸極具代表性。在視頻壓縮算法領(lǐng)域,新一代視頻壓縮標(biāo)準(zhǔn)H.264以其優(yōu)異的壓縮性能和圖像質(zhì)量使視頻實(shí)時(shí)編碼傳輸技術(shù)的實(shí)現(xiàn)成為可能。但該標(biāo)準(zhǔn)的計(jì)算復(fù)雜度高,用一般的圖像處理芯片難以達(dá)到實(shí)時(shí)編解碼的要求,它需要快速、穩(wěn)定的處理器作為硬件平臺(tái)。ADSP-BF561是ADI公司推出的高性能多媒體處理器。其主要特點(diǎn)是具有兩個(gè)ADSP-BF533處理器核心(以下簡(jiǎn)稱核心A和核心B),最高時(shí)鐘頻率達(dá)到600MHz,其內(nèi)部采用哈佛總線結(jié)構(gòu),存儲(chǔ)模型層次化。其典型應(yīng)用模式是A核運(yùn)行嵌入式操作系統(tǒng),B核運(yùn)行多媒體處理算法,如H.264。本文提出了一套采用ADSP-BF561芯片實(shí)現(xiàn)H.264視頻壓縮算法的設(shè)計(jì)方案,結(jié)合該DSP平臺(tái)對(duì)算法進(jìn)行了針對(duì)性的優(yōu)化,充分發(fā)揮了ADSP-BF561強(qiáng)大的處理能力。
1 算法介紹
1.1 H.264編碼模型框架
  H.264以其高壓縮比、高圖像質(zhì)量和良好的網(wǎng)絡(luò)親和性廣受業(yè)界歡迎。在同等質(zhì)量條件下,H.264的數(shù)據(jù)壓縮比比MPEG-2高2~3倍,比MPEG-4高1.5~2倍。其需要的帶寬只有MPEG-4的50%, MPEG-2的12.5%。
  H.264標(biāo)準(zhǔn)采用分層體系結(jié)構(gòu),系統(tǒng)分為:視頻編碼層VCL(Video Coding Layer),負(fù)責(zé)高效的數(shù)字視頻壓縮;網(wǎng)絡(luò)抽象層NAL(Network Abstraction Layer),負(fù)責(zé)對(duì)數(shù)據(jù)進(jìn)行打包和傳送。H.264編碼圖像通常分為三種類型:I幀、P幀、B幀。I幀為幀內(nèi)編碼幀,其編碼不依賴于已編碼的圖像數(shù)據(jù)。P幀為前向預(yù)測(cè)幀,B幀為雙向預(yù)測(cè)幀,編碼時(shí)都需要根據(jù)參考幀進(jìn)行運(yùn)動(dòng)估計(jì)。同時(shí),H.264在提高圖像傳輸容錯(cuò)性方面做了大量工作,重新定義了適于圖像的結(jié)構(gòu)劃分。在編碼時(shí),圖像幀各部分被劃分到多個(gè)Slice結(jié)構(gòu)中,每個(gè)Slice都可以被獨(dú)立編碼,不受其他部分影響。Slice由圖像最基本的結(jié)構(gòu)——宏塊組成,每個(gè)宏塊包含一個(gè)16×16的亮度塊和兩個(gè)8×8的色度塊。H.264標(biāo)準(zhǔn)的整體編碼框圖如圖1所示。編碼過(guò)程中,原始數(shù)據(jù)進(jìn)入編碼器后,當(dāng)采用幀內(nèi)編碼時(shí),首先選擇相應(yīng)的幀內(nèi)預(yù)測(cè)模式進(jìn)行幀內(nèi)預(yù)測(cè),隨后對(duì)實(shí)際值和預(yù)測(cè)值之間的差值進(jìn)行變換、量化和嫡編碼,同時(shí)編碼后的碼流經(jīng)過(guò)反量化和反變換之后重構(gòu)預(yù)測(cè)殘差圖像,再與預(yù)測(cè)值相加得出重構(gòu)幀,得出的結(jié)果經(jīng)過(guò)去塊濾波器平滑后送入幀存儲(chǔ)器。采用幀間編碼時(shí),輸入的圖像塊首先在參考幀中進(jìn)行運(yùn)動(dòng)估計(jì),得到運(yùn)動(dòng)矢量。運(yùn)動(dòng)估計(jì)后的殘差圖像經(jīng)整數(shù)變換、量化和嫡編碼后與運(yùn)動(dòng)矢量一起送入信道傳輸。同時(shí)另一路碼流以相同的方式重構(gòu)后,經(jīng)去塊濾波后送入幀存儲(chǔ)器作為下一幀編碼的參考圖像。

1.2 H.264關(guān)鍵技術(shù)
1.2.1 幀內(nèi)預(yù)測(cè)

  H.264引入了幀內(nèi)預(yù)測(cè)以提高壓縮效率。幀內(nèi)預(yù)測(cè)編碼就是利用周圍鄰近的像素值來(lái)預(yù)測(cè)當(dāng)前的像素值,然后對(duì)預(yù)測(cè)誤差進(jìn)行編碼。這種預(yù)測(cè)是基于塊的。對(duì)于亮度分量,塊的大小可以在16×16和4×4之間選擇,16×16有4種預(yù)測(cè)模式,4×4有9種預(yù)測(cè)模式;對(duì)于色度分量,預(yù)測(cè)是對(duì)整個(gè)8×8塊進(jìn)行的,有4種預(yù)測(cè)模式。
1.2.2 幀間預(yù)測(cè)
  幀間預(yù)測(cè)時(shí)所用塊的大小可變。假設(shè)基于塊的運(yùn)動(dòng)模型,其塊內(nèi)的所有像素都做了相同的平移,在運(yùn)動(dòng)比較劇烈或者運(yùn)動(dòng)物體的邊緣外,這一假設(shè)會(huì)與實(shí)際出入較大,從而導(dǎo)致較大的預(yù)測(cè)誤差,這時(shí)減小塊的大小可以使假設(shè)在小塊中依然成立。另外小塊所造成的塊效應(yīng)相對(duì)也小,因此,小塊可以提高預(yù)測(cè)的效果。H.264一共采用了7種方式對(duì)一個(gè)宏塊進(jìn)行分割,每種方式下塊的大小和形狀都不相同,編碼器可以根據(jù)圖像的內(nèi)容選擇最好的預(yù)測(cè)模式。與僅使用16x16塊進(jìn)行預(yù)測(cè)相比,使用不同大小和形狀的塊可以使碼率節(jié)約15%以上。
  同時(shí),幀內(nèi)預(yù)測(cè)采用了更精細(xì)的預(yù)測(cè)精度,H.264中亮度分量的運(yùn)動(dòng)矢量使用1/4像素精度。色度分量的運(yùn)動(dòng)矢量使用1/8像素精度。
1.2.3 多幀參考
  H.264支持多幀參考預(yù)測(cè),最多可以有5個(gè)在當(dāng)前幀之前的解碼幀作為參考幀產(chǎn)生對(duì)當(dāng)前幀的預(yù)測(cè),提高H.264解碼器的錯(cuò)誤恢復(fù)能力。
1.2.4 整數(shù)變換
  H.264對(duì)殘差圖像的4×4整數(shù)變換技術(shù),采用定點(diǎn)運(yùn)算來(lái)代替以往DCT變換中的浮點(diǎn)運(yùn)算。以降低編碼時(shí)間,同時(shí)也更適合硬件平臺(tái)的移植。
1.2.5 熵編碼
  H.264支持兩種熵編碼方法,即CAVLC(基于上下文的自適應(yīng)可變長(zhǎng)編碼)和CABAC(基于上下文的自適應(yīng)算術(shù)編碼)。其中CAVLC的抗差錯(cuò)能力比較高,但編碼效率比CABAC低;而CABAC的編碼效率強(qiáng),但需要的計(jì)算量和存儲(chǔ)容量更大。
1.2.6 去方塊濾波
  去方塊濾波的作用是消除經(jīng)反量化和反變換后重建圖像中由于預(yù)測(cè)誤差產(chǎn)生的塊效應(yīng),從而改善圖像的主觀質(zhì)量和預(yù)測(cè)誤差。經(jīng)過(guò)濾波后的圖像將根據(jù)需要放在緩存中用于幀間預(yù)測(cè),而不是僅僅用來(lái)改善主觀質(zhì)量,因此該濾波器位于解碼環(huán)中。對(duì)于幀內(nèi)預(yù)測(cè),使用的是未經(jīng)過(guò)濾波的重建圖像。
2 算法實(shí)現(xiàn)
2.1 平臺(tái)選擇
2.1.1 ADSP-BF561芯片介紹

  ADSP-BF561是Blackfin系列中的一款高性能定點(diǎn)DSP視頻處理芯片。其主頻最高可達(dá)750 MHz,內(nèi)核包含2個(gè)16位乘法器MAC、2個(gè)40位累加器ALU、4個(gè)8位視頻ALU,以及1個(gè)40位移位器。該芯片中的兩套數(shù)據(jù)地址產(chǎn)生器(DAG)可為同時(shí)從存儲(chǔ)器存取雙操作數(shù)提供地址,每秒可處理1 200兆次乘加運(yùn)算。芯片帶有專用的視頻信號(hào)處理指令以及100KB的片內(nèi)L1存儲(chǔ)器(16 KB的指令Cache,16 KB的指令SRAM,64 KB的數(shù)據(jù)Cache/SRAM,4 KB的臨時(shí)數(shù)據(jù)SRAM)、128 KB的片內(nèi)L2存儲(chǔ)器SRAM,同時(shí)具有動(dòng)態(tài)電源管理功能。此外,Blackfin處理器還包括豐富的外設(shè)接口,包括EBIU接口(4個(gè)128 MB SDRAM接口,4個(gè)1 MB異步存儲(chǔ)器接口)、3個(gè)定時(shí)/計(jì)數(shù)器、1個(gè)UART、1個(gè)SPI接口、2個(gè)同步串行接口和1路并行外設(shè)接口(支持ITU-656數(shù)據(jù)格式)等。Blackfin處理器在結(jié)構(gòu)上充分體現(xiàn)了對(duì)媒體應(yīng)用(特別是視頻應(yīng)用)算法的支持。[!--empirenews.page--]
2.1.2 ADSP-561 EZkite
  ADSP-BF561視頻編碼器平臺(tái)采用ADI公司的ADSP-BF561 EZ-kit Lite評(píng)估板。此評(píng)估板包括1塊ADSP-BF561處理器、32 MB SDRAM和4 MB Flash,板中的AD-V1836音頻編解碼器可外接4輸入/6輸出音頻接口;而ADV7183視頻解碼器和ADV7171視頻編碼器則可外接3輸入/3輸出視頻接口。此外,該評(píng)估板還包括1個(gè)UART接口、1個(gè)USB調(diào)試接口和1個(gè)JTAG調(diào)試接口。攝像頭輸入的模擬視頻信號(hào)經(jīng)視頻芯片ADV7183A轉(zhuǎn)化為數(shù)字信號(hào),此信號(hào)從ADSP-BF561的PPI1(并行外部接口)進(jìn)入ADSP-BF561芯片進(jìn)行壓縮,壓縮后的碼流則經(jīng)ADV7179轉(zhuǎn)換后從ADSP-BF561的PPI2口輸出。此系統(tǒng)可通過(guò)Flash加載程序,并支持串口及網(wǎng)絡(luò)傳輸。編碼過(guò)程中的原始圖像、參考幀等數(shù)據(jù)可存儲(chǔ)在SDRAM中。
2.2 算法選取與優(yōu)化方案
2.2.1 算法選取
  H.264實(shí)現(xiàn)的源代碼不止一種,其中最常見(jiàn)的有JM、X264和T264。對(duì)比這三種實(shí)現(xiàn)源代碼,X264比T264具有更高的效率。而且相比廣泛采用的JM編碼模型,X264在兼顧編碼質(zhì)量的同時(shí)大幅度地提升了編碼速度,所以選取X264作為算法原型。
2.2.2 優(yōu)化方案
  該優(yōu)化方案從三個(gè)層次對(duì)算法進(jìn)行優(yōu)化:算法層次、代碼層次、平臺(tái)層次。下面介紹具體優(yōu)化方法。
2.2.2.1 編碼器具體參數(shù)的選擇
  該編碼器使用main檔次,I、B、P幀量化值分別為26、31、29,流控參數(shù)選為CBR。IDR幀間隔設(shè)為50,B幀間隔為2幀。這樣的選擇是為了在速度和運(yùn)算量上取折中。選用B幀并將其量化值加大,可比baseline檔次、IPPP結(jié)構(gòu)提高約10%的壓縮率。而B(niǎo)幀的計(jì)算量,因其不用做參考幀,故無(wú)需進(jìn)行去塊濾波和插值計(jì)算,在31的qp下,很多塊會(huì)被判做skip模式編碼,因而多數(shù)時(shí)B幀總運(yùn)算量候反而較P幀低。
2.2.2.2 算法層次的優(yōu)化
  算法層次的優(yōu)化主要是指在參數(shù)選定的情況下,對(duì)部分算法所作的替換或優(yōu)化。和參數(shù)的選擇一樣,算法層次優(yōu)化也主要受優(yōu)化策略的指導(dǎo)。如運(yùn)動(dòng)匹配準(zhǔn)則是選用SSD、SAD或SATD。如果只看中準(zhǔn)確程度,則選擇SSD最佳;如果只看中運(yùn)行速度,則選擇SAD最佳;如果要兼顧二者,則選用SATD是比較好的一個(gè)方案。在進(jìn)行算法優(yōu)化時(shí)還應(yīng)該注意一個(gè)問(wèn)題,即要考慮實(shí)際運(yùn)行平臺(tái)的支持情況。如在追求速度的策略下,匹配準(zhǔn)則選用SAD,如果只計(jì)算一半的點(diǎn)則會(huì)大大降低運(yùn)算速度。但是如果考慮ADSP-BF561匯編指令的設(shè)計(jì)情況,就會(huì)發(fā)現(xiàn)這樣做反而會(huì)增加指令數(shù),會(huì)使速度更低。算法層次優(yōu)化包括如下幾個(gè)部分:
  (1)除法求余。改進(jìn)策略是浮點(diǎn)型算法盡量改為整型,64位盡量改為32位,32位盡量改為16位。而對(duì)于某些計(jì)算比較多的,則改為查表計(jì)算。在ADSP-BF561平臺(tái)上,一次32位整形除法需耗時(shí)300個(gè)CYCLE,而查表僅需幾個(gè)CYCLE,這樣的改進(jìn)能顯著提高速度。
  (2)飽和函數(shù)。在視頻的計(jì)算中,幾乎每次像素的計(jì)算都會(huì)調(diào)用飽和函數(shù),X264代碼的實(shí)現(xiàn)中已將這部分代碼改為查表函數(shù),在其他的編解碼器實(shí)現(xiàn)中也有將這部分改為一個(gè)判斷和幾個(gè)邏輯運(yùn)算的形式。對(duì)大部分DSP平臺(tái),采用判斷跳轉(zhuǎn)會(huì)打斷流水線,即使平臺(tái)有比較好的跳轉(zhuǎn)預(yù)測(cè)功能,打斷流水仍然會(huì)造成stall。所以查表方法是一種高效方法。而在ADSP-BF561匯編指令中,可以通過(guò)設(shè)置指令后綴或使用某些特殊指令來(lái)進(jìn)行飽和工作。甚至不用查表,在不同的場(chǎng)合使用不同的飽和算法能大大提高代碼的執(zhí)行效率。
  (3)MC部分函數(shù)。實(shí)測(cè)中發(fā)現(xiàn)MC部分函數(shù)運(yùn)行效率不如ffmpeg解碼器中MC部分效率高,所以將這部分代碼用ffmpeg中的相應(yīng)部分替換。此外qpel16_hv函數(shù)中計(jì)算有冗余,減少這些冗余能提高代碼運(yùn)行效率。
  (4)算法替代和改進(jìn)。幀間預(yù)測(cè)的改進(jìn):關(guān)于算法的改進(jìn)主要集中在對(duì)me(motion estimation)的改進(jìn)上,流程如圖2所示。costmin1=min(cost16,cost8,cost16×8,cost8×16),costmin2=min(costmin1,costsub),依次在16×16、8×8、16×8和8×16大小宏塊的整像素位置做預(yù)測(cè),再做次像素估計(jì)和幀內(nèi)預(yù)測(cè),選用匹配準(zhǔn)則函數(shù)(采用sad作為匹配準(zhǔn)則函數(shù))取得最小值的模式進(jìn)行編碼。每計(jì)算一種模式,都將sad值與一個(gè)經(jīng)驗(yàn)閥值做比較。當(dāng)sad值小于這個(gè)閥值時(shí),立即結(jié)束運(yùn)動(dòng)估計(jì),從而減少運(yùn)算量。

 


  幀內(nèi)預(yù)測(cè)的改進(jìn):H.264標(biāo)準(zhǔn)所采用的幀內(nèi)預(yù)測(cè)模式除了DC模式都具有方向性,相鄰4×4塊都具有相關(guān)性。根據(jù)這樣的相關(guān)性,只將當(dāng)前4×4塊上邊和左邊選用預(yù)測(cè)模式及其相鄰的兩種預(yù)測(cè)模式作為當(dāng)前4×4塊的預(yù)測(cè)模式,當(dāng)其閥值都大于一個(gè)經(jīng)驗(yàn)閥值時(shí),才采用DC模式。這樣的方案不用一一計(jì)算9種預(yù)測(cè)模式,在復(fù)雜度、編碼效率、質(zhì)量和速度上取了一個(gè)折中。流程如圖3所示。

 

[!--empirenews.page--]


2.2.2.3 代碼層次優(yōu)化
  針對(duì)ADSP-BF561平臺(tái),代碼層次的優(yōu)化工作包括以下幾個(gè)方面:
  (1)內(nèi)聯(lián)函數(shù)。將經(jīng)常調(diào)用的函數(shù)體較小的函數(shù)改為內(nèi)聯(lián)。編譯條件中有關(guān)于內(nèi)聯(lián)函數(shù)優(yōu)化的選項(xiàng)。內(nèi)聯(lián)函數(shù)的使用是將代碼的大小和運(yùn)行效率取一個(gè)折中。根據(jù)實(shí)際情況,代碼的大小并非限制條件,所以應(yīng)盡可能多地使用內(nèi)聯(lián)函數(shù)。在項(xiàng)目配置中選中when declared inline選項(xiàng)。
  (2)跳轉(zhuǎn)預(yù)測(cè)。ADSP-BF561采用了靜態(tài)預(yù)測(cè)的方式來(lái)預(yù)測(cè)有條件判斷情況,預(yù)測(cè)不成功會(huì)造成4~8個(gè)內(nèi)核時(shí)鐘(CCLK)的延誤。如果事先知道某些跳轉(zhuǎn)的概率,將可能性最大的分支放在最前面,可以從概率上降低預(yù)測(cè)不成功而造成的stall。
  (3)使用硬件支持循環(huán)。對(duì)于大部分平臺(tái),將一些循環(huán)體小的循環(huán)展開(kāi)也能提高效率。ADSP-BF561有兩組硬件計(jì)數(shù)器用以支持循環(huán)。所以除非是展開(kāi)三層以上的循環(huán),否則,展開(kāi)循環(huán)體不能提高效率。
  (4)內(nèi)存。嵌入式系統(tǒng)的內(nèi)存是非常寶貴的資源。避免頻繁的動(dòng)態(tài)申請(qǐng)和釋放內(nèi)存,能減少碎片產(chǎn)生,提高內(nèi)存的利用率。X264工程也不會(huì)頻繁地申請(qǐng)釋放內(nèi)存。在項(xiàng)目中,具體做法是編寫(xiě)平臺(tái)相關(guān)的malloc和free函數(shù)。將經(jīng)常使用的中間數(shù)據(jù)在L1數(shù)據(jù)空間中分配。
  (5)注釋不需要代碼。去掉代碼中不需要的部分,主要會(huì)去掉CAVLC以及部分碼率控制、csp、cpu、信息統(tǒng)計(jì)、調(diào)試和psnr計(jì)算等部分代碼,這樣做的目的是為了減小文件大小和去除代碼中的一些跳轉(zhuǎn)。不建議刪除代碼,可以使用注釋符或用宏切換的方式,以防止以后參數(shù)改變時(shí)需要使用未使用過(guò)的代碼。
2.2.2.4 平臺(tái)層次優(yōu)化
  ADSP-BF561相應(yīng)的編程參考和硬件參考對(duì)其平臺(tái)特性有詳細(xì)介紹。一些平臺(tái)自帶的優(yōu)化功能,如CACHE的開(kāi)啟和配置等不專門(mén)在此討論。
  (1)匯編代碼編寫(xiě)
  使用匯編優(yōu)化有兩個(gè)方法:對(duì)于LEAF函數(shù)(函數(shù)體中不再調(diào)用其余函數(shù)),采用整個(gè)函數(shù)完全用匯編指令重寫(xiě)的方式;而對(duì)于NONLEAF函數(shù)則可使用asm關(guān)鍵字,在C代碼中嵌入?yún)R編代碼。在匯編代碼的編寫(xiě)過(guò)程中一些情況會(huì)造成流水線stall,在編寫(xiě)匯編代碼時(shí)要特別注意避免這些情況。IDE集成了PIPLELINE VIEWER工具,如圖4所示。在編寫(xiě)完成匯編代碼后,可使用該工具觀察運(yùn)行時(shí)流水線的情況。如果有stall等出現(xiàn),會(huì)給出原因,優(yōu)化人員根據(jù)工具分析結(jié)果重新更改代碼,提高執(zhí)行效率。


  ADI公司提供的IDE具有非常靈活的設(shè)置,能根據(jù)用戶的需要生成針對(duì)不同限制的代碼。如內(nèi)存有限,用戶可以設(shè)置生成文件更小的代碼;如果用戶更注重運(yùn)行速度,則設(shè)置編譯器生成運(yùn)行速度更快的代碼,或是在其間取一個(gè)折中。
  ADSP-BF561有專門(mén)用于處理視頻相關(guān)的一些專用DSP指令(video pixel operations、vector operations等),這些專用指令通過(guò)SIMD技術(shù)或者操作專門(mén)硬件支持某些特殊運(yùn)算(累加、多參數(shù)取均值,同時(shí)完成加減法等),以提高運(yùn)行速度。如前文求SAD情況,匯編指令中有指令專門(mén)計(jì)算連續(xù)4個(gè)像素與另外連續(xù)4個(gè)像素之差的絕對(duì)值之和,結(jié)果與累加器的值相加。如果要隔點(diǎn)算(即取一半的點(diǎn)計(jì)算),反而需要增加指令后對(duì)數(shù)據(jù)進(jìn)行下采樣,既耗時(shí)而且不準(zhǔn)確。所以采用計(jì)算一半像素點(diǎn)的策略并不適用于ADSP-BF561。編譯器自動(dòng)生成的代碼中不會(huì)使用到這些專用指令。所以只能根據(jù)對(duì)算法的理解和對(duì)平臺(tái)的熟悉程度來(lái)對(duì)算法進(jìn)行匯編優(yōu)化。
  在編寫(xiě)匯編代碼時(shí)還需注意部分寄存器的使用,如I0、I1,其值不僅用做地址索引,還會(huì)影響許多指令的計(jì)算結(jié)果。在使用這些寄存器時(shí),一定要注意將其壓棧或置為適當(dāng)?shù)闹?。此外,關(guān)于數(shù)據(jù)的載入,一般應(yīng)遵循對(duì)齊原則,但在做運(yùn)動(dòng)估計(jì)計(jì)算匹配準(zhǔn)則函數(shù)時(shí),這樣的要求往往達(dá)不到。故如能將兩者分開(kāi)來(lái)計(jì)算,將更能提高效率。
  此外,應(yīng)盡量合理地使用寄存器,多使用并行指令也能提高代碼的執(zhí)行效率。
  (2)分級(jí)存儲(chǔ)器結(jié)構(gòu)
  ADSP-BF561處理器采用改進(jìn)的哈佛結(jié)構(gòu)和分級(jí)的存儲(chǔ)器結(jié)構(gòu)。Level 1(L1)存儲(chǔ)器以全速運(yùn)行,只有很少的延遲。在L1級(jí),指令存儲(chǔ)器存放指令。兩個(gè)數(shù)據(jù)存儲(chǔ)器存放數(shù)據(jù),一個(gè)專用的臨時(shí)數(shù)據(jù)存儲(chǔ)器存放堆棧和局部變量信息。由多個(gè)L1 存儲(chǔ)器組成的模塊,可進(jìn)行SRAM和CACHE 的混合配置。存儲(chǔ)器管理單元(MMU)提供存儲(chǔ)器保護(hù)功能,對(duì)運(yùn)行于內(nèi)核上的獨(dú)立任務(wù),可保護(hù)系統(tǒng)寄存器免于意外的存取。L1 存儲(chǔ)器是ADSP-BF561處理器內(nèi)核中性能最高、最重要的存儲(chǔ)器。通過(guò)外部總線接口單元(EBIU),片外存儲(chǔ)器可以由SDRAM、FLASH 和SRAM 進(jìn)行擴(kuò)展,可以訪問(wèn)多達(dá)132 MB的物理存儲(chǔ)器。根據(jù)這樣的特點(diǎn),將執(zhí)行率更高的代碼放入L1指令緩存中,能使代碼更快地運(yùn)行。IDE提供了Profile工具,能在運(yùn)行時(shí)統(tǒng)計(jì)各個(gè)函數(shù)所占的CYCLE數(shù)和占總CYCLE數(shù)的百分比。通過(guò)將X264中比較耗時(shí)的部分算法代碼,如模式選擇部分代碼放入L1指令空間,能進(jìn)一步提升運(yùn)行效率。Profile工具統(tǒng)計(jì)結(jié)果同樣也是選擇需要使用匯編優(yōu)化函數(shù)的依據(jù),IDE可根據(jù)Profile結(jié)果對(duì)代碼進(jìn)行優(yōu)化。X264代碼Profile統(tǒng)計(jì)結(jié)果與測(cè)試數(shù)據(jù)有很大關(guān)系,選用更類似以后應(yīng)用場(chǎng)所的數(shù)據(jù)作為測(cè)試數(shù)據(jù),能使統(tǒng)計(jì)結(jié)果更接近以后的應(yīng)用環(huán)境。為達(dá)到比較準(zhǔn)確的統(tǒng)計(jì)結(jié)果,最好在Simulation階段進(jìn)行統(tǒng)計(jì)。雖然這樣非常耗時(shí),但為得到一個(gè)準(zhǔn)確的統(tǒng)計(jì)作為參考依據(jù)是值得的。此外CACHE VIEWER工具能提供運(yùn)行時(shí)CACHE的使用情況,使用它來(lái)分析CACHE的使用,對(duì)于提高代碼運(yùn)行效率很有用處。[!--empirenews.page--]
3 實(shí)驗(yàn)結(jié)果評(píng)估
3.1 關(guān)鍵函數(shù)優(yōu)化測(cè)試結(jié)果

  采用以上優(yōu)化方法對(duì)編碼關(guān)鍵函數(shù)進(jìn)行優(yōu)化,優(yōu)化前后函數(shù)耗時(shí)如表1所示??梢?jiàn),以上優(yōu)化方法能大幅度減少編碼時(shí)間。


3.2 測(cè)試序列測(cè)試結(jié)果
  對(duì)三種測(cè)試序列在總線頻率120MHz下進(jìn)行優(yōu)化前后幀率測(cè)試,結(jié)果如表2所示。從表2可以看出,采用以上優(yōu)化方法能顯著提高幀率。


3.3 不同數(shù)據(jù)總線頻率下測(cè)試結(jié)果
  對(duì)于不同的總線頻率,優(yōu)化后編碼幀率不同,結(jié)果如表3所示,采用的測(cè)試序列為foreman。


  本文介紹了H.264標(biāo)準(zhǔn)的框架,研究了X264軟件的實(shí)現(xiàn)方案,對(duì)ADSP-BF561處理器體系結(jié)構(gòu)進(jìn)行分析,提出了一套X264優(yōu)化方案,包括:算法替代和改進(jìn)、內(nèi)聯(lián)函數(shù)、匯編代碼編寫(xiě)、高速存儲(chǔ)器應(yīng)用等。測(cè)試結(jié)果表明,優(yōu)化后的算法編碼效率有顯著提高,具有很強(qiáng)的實(shí)用價(jià)值。但是,本文主要從編碼速度和效率兩方面對(duì)編碼器進(jìn)行優(yōu)化,在復(fù)雜度和編碼質(zhì)量上仍需不斷對(duì)關(guān)鍵算法進(jìn)行分析整合,提出新的優(yōu)化算法。同時(shí),編碼器的碼率控制尚未完善,如何在降低計(jì)算復(fù)雜度的前提下有效進(jìn)行碼率控制,需進(jìn)一步研究。


參考文獻(xiàn)
[1] 畢厚杰.新一代視頻壓縮編碼標(biāo)準(zhǔn)——H.264.北京:人民郵電出版社,2005.
[2] 幻劉峰.視頻圖像編碼技術(shù)及國(guó)際標(biāo)準(zhǔn).北京:北京郵電大學(xué)出版社,2005.
[3] 李玉山.數(shù)字視覺(jué)視頻技術(shù).西安:西安電子科技大學(xué)出版社,2006.
[4] MICHAELURAPIS A,STTHRING K,SULLIVAN G.H.264/MPEG-4 AVC reference software manual.Joint Video Team
(JVT)of ISO/IEC MPEG&ITU-T VCEG(ISO/IEC JTC1/SC29/WG11 and ITU-T SG16Q.6)14th Meeting, Hong Kong, PRC China 17-21,2005.

本站聲明: 本文章由作者或相關(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工具的開(kāi)發(fā)耗時(shí)1.5...

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

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(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ì)開(kāi)幕式在貴陽(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)閉