<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 消費(fèi)電子 > 設(shè)計(jì)應(yīng)用 > 基于ADSP-BF561的H.264視頻編碼器的實(shí)現(xiàn)

          基于ADSP-BF561的H.264視頻編碼器的實(shí)現(xiàn)

          作者:崔海燕,王卿 時(shí)間:2008-07-03 來(lái)源:電子元器件應(yīng)用 收藏

            0引言

          本文引用地址:http://www.ex-cimer.com/article/85224.htm

            H.264/AVC是ITU-T VCEG和ISO/IEC MPEG聯(lián)合制定的最新國(guó)際標(biāo)準(zhǔn),是目前圖像研究領(lǐng)域的熱點(diǎn)技術(shù)之一。H.264的層(VCL)采用了許多新技術(shù),因而使其編碼性能有了大幅度提高。但這是以復(fù)雜度的成倍增加為代價(jià)的,這也使得H.264在實(shí)時(shí)及傳輸應(yīng)用中面臨著巨大的挑戰(zhàn)。因此,要滿足圖像壓縮的實(shí)時(shí)性要求,就需要對(duì)現(xiàn)有的H.264編解碼器進(jìn)行優(yōu)化。本文主要討論H.264系統(tǒng)的硬件平臺(tái)和任務(wù)流程,并針對(duì)基于硬件平臺(tái)的特點(diǎn),介紹了從代碼級(jí)對(duì)算法進(jìn)行優(yōu)化,進(jìn)一步提高編碼算法的運(yùn)算速度,實(shí)現(xiàn)H.264實(shí)時(shí)編碼的具體方法。由于ADI Blackfin561是AD公司推出的一款高性能的數(shù)字信號(hào),它具有600MHz的主頻。為此,本文選擇其作為硬件平臺(tái),來(lái)探索在資源有限的平臺(tái)上實(shí)現(xiàn)H.264編碼器的有效途徑。

            1硬件平臺(tái)

            1.1 A-BF561

            Blackfin561是Blackfin系列中的一款高性能定點(diǎn)DSP視頻處理芯片。其主頻最高可達(dá)750 MHz,其內(nèi)核包含2個(gè)16位乘法器MAC、2個(gè)40位累加器ALU、4個(gè)8位視頻ALU,以及1個(gè)40位移位器。該芯片中的2套數(shù)據(jù)地址產(chǎn)生器(DAG)可為同時(shí)從存儲(chǔ)器存取雙操作數(shù)提供地址,每秒可處理1200M次乘加運(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è)1MB異步存儲(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)用)算法的支持。

            1.2基于ADSP-BF561的視頻編碼器平臺(tái)

            Blackfin561視頻編碼器的硬件結(jié)構(gòu)如圖1所示。該硬件平臺(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)試接口。在圖1中,攝像頭輸入的模擬視頻信號(hào)經(jīng)視頻芯片ADV7183A轉(zhuǎn)化為數(shù)字信號(hào),此信號(hào)從Blackfin561的PPI1(并行外部接口)進(jìn)入Blackfin561芯片進(jìn)行壓縮,壓縮后的碼流則經(jīng)ADV7179轉(zhuǎn)換后從ADSP-BF561的PPI2口輸出。此系統(tǒng)可通過(guò)Flash加載程序,并支持串口及網(wǎng)絡(luò)傳輸。編碼過(guò)程中的原始圖像、參考幀等數(shù)據(jù)可存儲(chǔ)在SDRAM中。

            2 H.264視頻壓縮編碼算法的主要特點(diǎn)

            視頻編解碼標(biāo)準(zhǔn)主要包括兩個(gè)系列:一個(gè)是MPEG系列,一個(gè)是H.26X系列。其中MPEG系列標(biāo)準(zhǔn)由ISO/IEC組織(國(guó)際標(biāo)準(zhǔn)化組織)制定,H.26X系列標(biāo)準(zhǔn)由ITU-T(國(guó)際電信聯(lián)盟)制定。I-TU-T標(biāo)準(zhǔn)包括H.261、H.262、H.263、H.264等,主要用于實(shí)時(shí)視頻,如電視會(huì)議等。

            H.264視頻壓縮算法采用與H.263和MPEG-4類似的、基于塊的混和編碼方法,它采用幀內(nèi)編碼(Intra)和幀間編碼(Inter)兩種編碼模式。與以往的編碼標(biāo)準(zhǔn)相比,為了提高編碼效率、壓縮比和圖像質(zhì)量,H.264采用了以下全新的編碼技術(shù):

            (1) H.264按功能將視頻編碼系統(tǒng)分為視頻編碼層(VCL,Video Coding Layer)和網(wǎng)絡(luò)抽象層(NAL,Network Abstraction Layer)兩個(gè)層次。其中VCL用于完成對(duì)視頻序列的高效壓縮,NAL則用于規(guī)范視頻數(shù)據(jù)的格式,主要提供頭部信息以適合各種媒體的傳輸和存儲(chǔ)。

            (2)先進(jìn)的幀內(nèi)預(yù)測(cè),它對(duì)含有較多空域細(xì)節(jié)信息的宏塊采用4×4預(yù)測(cè),而對(duì)于較平坦的區(qū)域則采用16×16的預(yù)測(cè)模式,前者有9種預(yù)測(cè)方法,后者有4種預(yù)測(cè)方法。

            (3)幀間預(yù)測(cè)采用更多的塊劃分種類,標(biāo)準(zhǔn)中定義了7種不同尺寸和形狀的宏塊分割(16×16、16×8、8×16)和子宏塊分割(8×8、8×4、4×8、4×4)。由于采用更小的塊和自適應(yīng)編碼方式,故可使得預(yù)測(cè)殘差的數(shù)據(jù)量減少,從而進(jìn)一步降低了碼率。

            (4)可進(jìn)行高精度的、基于1/4像素精度的運(yùn)動(dòng)預(yù)測(cè)。

            (5)可進(jìn)行多參考幀預(yù)測(cè)。在幀間編碼時(shí),最多可選5個(gè)不同的參考幀。

            (6)整數(shù)變換(DCT/IDCT)。對(duì)殘差圖像的4×4整數(shù)變換技術(shù),采用定點(diǎn)運(yùn)算來(lái)代替以往DCT變換中的浮點(diǎn)運(yùn)算。以降低編碼時(shí)間,同時(shí)也更適合到硬件平臺(tái)的移植。

            (7)H.264/AVC支持兩種熵編碼方法,即CAVLC(基于上下文的自適應(yīng)可變長(zhǎng)編碼)和CABAC(基于上下文的自適應(yīng)算術(shù)編碼)。其中CAVLC的抗差錯(cuò)能力比較高,但編碼效率比CABAC低;而CABAC的編碼效率高,但需要的計(jì)算量和存儲(chǔ)容量更大。

            (8)采用新的環(huán)路濾波技術(shù)及熵編碼技術(shù)等。

            H.264的這些新技術(shù)使運(yùn)動(dòng)圖像壓縮技術(shù)向前邁進(jìn)了一大步,它具有優(yōu)于MPEG-4和H.263的壓縮性能,可應(yīng)用于因特網(wǎng)、數(shù)字視頻、DVD及電視廣播等高性能視頻壓縮領(lǐng)域。

            3 H.264視頻編碼算法的實(shí)現(xiàn)

            將H.264在DSP進(jìn)行改進(jìn)要經(jīng)過(guò)以下3個(gè)步驟:機(jī)上的C算法優(yōu)化、從機(jī)到DSP的程序移植、在DSP平臺(tái)上的代碼優(yōu)化。

            3.1 機(jī)上的C算法優(yōu)化

            根據(jù)系統(tǒng)要求,本設(shè)計(jì)選擇了ITU的Jm8.5版本baseline profile作為標(biāo)準(zhǔn)算法軟件。ITU的參考軟件JM是基于PC機(jī)設(shè)計(jì)的,故可取得較高的編碼效果。將視頻編解碼軟件移植到DSP時(shí),應(yīng)考慮到DSP系統(tǒng)資源,主要應(yīng)考慮的因素是系統(tǒng)空間(包括程序空間和數(shù)據(jù)空間),所以,需要對(duì)原始的C代碼進(jìn)行評(píng)估,這就需要對(duì)所移植的代碼有所了解。圖2所示是H.264的算法結(jié)構(gòu)。

            了解了算法結(jié)構(gòu)以后,還需要確定在編碼算法的實(shí)現(xiàn)過(guò)程中,運(yùn)算量較大且耗時(shí)較長(zhǎng)的部分。VC6自帶的profile分析工具顯示:幀內(nèi)與幀間編碼部分占用了整體運(yùn)行時(shí)間的60%以上。其中ME(Move Estimation,運(yùn)動(dòng)估計(jì))又占用了其中較多的時(shí)間。所以,移植與優(yōu)化的重點(diǎn)應(yīng)在運(yùn)動(dòng)估計(jì)部分,因此,應(yīng)當(dāng)對(duì)代碼結(jié)構(gòu)進(jìn)行調(diào)整。

            (1)大幅刪減不必要的文件和函數(shù)

            由于選用了baseline和單一參考幀,因此,很多文件和函數(shù)都可以刪減,包括有關(guān)B幀、SI片、SP片和數(shù)據(jù)分割、分層編碼、權(quán)值預(yù)測(cè)模式、CABAC編碼模式等不支持特性的冗余程序代碼,同時(shí)包括rtp.c、sei.c、leaky_bucket.c、In-trafresh.c文件、相關(guān)的頭文件以及在global.h頭文件中相應(yīng)定義的全局變量和函數(shù),此外,還可以刪除top_pic、bottom_pic等與場(chǎng)有關(guān)的全局變量與局部變量、分層編碼、多slice分割以及FMO、與場(chǎng)編碼/幀場(chǎng)自適應(yīng)編碼/宏塊自適應(yīng)編碼有關(guān)的預(yù)測(cè)、參考幀排序、輸入輸出以及解碼器緩存操作等;也可以刪除隨機(jī)幀內(nèi)宏塊刷新模式和權(quán)值預(yù)測(cè)模式等相關(guān)的冗余代碼(如使編碼器采用NAL碼流而非RTP格式),同時(shí)刪除rtp.c;sei.c中包含一些輔助編碼信息(并不編入碼流中),如果不用,也可以刪除leaky_bucket.c用于計(jì)算泄漏緩存器的參數(shù)。

            (2)配置函數(shù)的改寫

            由于JM的系統(tǒng)參數(shù)配置是通過(guò)讀取encoder.cfg文件來(lái)實(shí)現(xiàn)的,故可將參數(shù)配置由讀取文件改為通過(guò)初始化集中賦值函數(shù)來(lái)實(shí)現(xiàn),這樣既減少了代碼量,又減少了對(duì)有限內(nèi)存空間的占用和讀取時(shí)間,提高了編碼器整體的編碼速度。例如:定義為int型的變量input->img_height就可直接改寫為input->img_height=288(CIF格式)。

            (3)去除冗余的打印信息

            為了調(diào)試與算法改進(jìn)的方便,JM保留了大量的打印信息。為了提高編碼速度,減少存儲(chǔ)空間消耗,這些信息完全可以刪掉,如大量的trace信息和編碼數(shù)據(jù)統(tǒng)計(jì)文件。如果lor.dat和stat.dat僅需在PC機(jī)上調(diào)試時(shí)使用,也沒(méi)必要移植到DSP平臺(tái)上,跟這部分相關(guān)的代碼完全可以去除。但是,調(diào)試時(shí)所需的基本信息(如碼率、信噪比、編碼序列等)則應(yīng)保留參考。

            通過(guò)調(diào)整可使得代碼的結(jié)構(gòu)、容量更加精簡(jiǎn),從而為接下來(lái)在DSP上的移植做好準(zhǔn)備。


          上一頁(yè) 1 2 下一頁(yè)

          關(guān)鍵詞: 視頻編碼 處理器 通信 PC DSP

          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();