0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

基于VPM642板卡和DSP實(shí)現(xiàn)AVS解碼軟件的優(yōu)化應(yīng)用

電子設(shè)計(jì) ? 來源:電子設(shè)計(jì)應(yīng)用 ? 作者:劉志勝,彭玉華,劉 ? 2021-03-22 16:33 ? 次閱讀

AVS是中國自主制定的第二代音視頻編碼標(biāo)準(zhǔn)。從編碼效率上看,AVS與H.264/AVC相當(dāng),比MPEG-2高兩倍;從編碼的復(fù)雜度上看,AVS的編碼復(fù)雜度相當(dāng)于H.264的70%,解碼復(fù)雜度相當(dāng)于H.264的30%。同時,AVS不需要交納高額的專利費(fèi)用,具有很廣闊的市場前景,如:數(shù)字音視頻存儲、IPTV和視頻監(jiān)控等。

TMS320DM642是TI公司推出的一款面向多媒體信號處理的DSP,采用了C64x核。它具有極強(qiáng)的處理能力、高度的靈活性和可編程性,同時又集成了音視頻和網(wǎng)絡(luò)通信等外設(shè),特別適用于多媒體通信應(yīng)用。DM642可應(yīng)用于基于IP的音視頻傳輸、數(shù)字視頻記錄、機(jī)器視覺、醫(yī)學(xué)成像、安全監(jiān)視和數(shù)字相機(jī)等領(lǐng)域。

本文把AVS解碼軟件移植到DM642平臺上,并進(jìn)行了優(yōu)化,對于標(biāo)清視頻,解碼速度達(dá)到30fps,完全滿足實(shí)時播放的要求。

AVS標(biāo)準(zhǔn)

AVS的解碼過程如圖1所示。

基于VPM642板卡和DSP實(shí)現(xiàn)AVS解碼軟件的優(yōu)化應(yīng)用

圖1 AVS解碼器

AVS視頻編解碼標(biāo)準(zhǔn)中的核心技術(shù)包括:幀內(nèi)預(yù)測、1/4精度像素插值、特殊的幀間預(yù)測運(yùn)動補(bǔ)償、8×8整數(shù)變換、量化、二維熵編碼和去塊效應(yīng)環(huán)內(nèi)濾波等。

AVS亮度和色度幀內(nèi)預(yù)測都是以8×8塊為單位的。亮度塊采用5種預(yù)測模式,色度塊采用4種預(yù)測模式。在編碼效率基本相同的情況下,AVS采用了更少的預(yù)測模式,使算法的復(fù)雜度大大降低。

對于幀間的運(yùn)動補(bǔ)償,AVS采用了4種塊:16×16,16×8,8×16及8×8,可以更好地刻畫物體運(yùn)動,提高運(yùn)動搜索的準(zhǔn)確性,同時降低了運(yùn)動矢量和塊模式傳輸?shù)拈_銷,從而提高壓縮效率,降低了編解碼實(shí)現(xiàn)的復(fù)雜度。AVS與H.264、MPEG-4一樣,采用了1/4像素插值,但與H.264的6抽頭1/2像素插值和雙線性1/4像素插值不同,AVS采用了兩種4抽頭濾波器對1/2和1/4像素進(jìn)行插值,在不降低性能的情況下減少了插值所需要的參考像素點(diǎn),減小了數(shù)據(jù)存取帶寬需求。

8×8的整數(shù)變換可以在16位處理器上無失真的實(shí)現(xiàn),克服了早期的8×8變換不能無失真的缺點(diǎn),同時又比H.264中4×4的整數(shù)變換有更好的去相關(guān)性。

在AVS熵編碼過程中,所有的語法元素和殘差數(shù)據(jù)都是以指數(shù)哥倫布碼的形式映射成二進(jìn)制比特流。采用指數(shù)哥倫布碼的優(yōu)勢在于:一方面,它的硬件復(fù)雜度比較低,可以根據(jù)閉合公式解析碼字;另一方面,它可以根據(jù)編碼元素的概率分布,靈活地確定以k階指數(shù)進(jìn)行哥倫布碼編碼,如果k選得恰當(dāng),則編碼效率可以逼近信息熵。利用解碼后的數(shù)據(jù),通過查表得到殘差數(shù)據(jù)。

AVS采用了兩個級別的環(huán)路濾波,只對邊界的兩個像素進(jìn)行濾波。與H.264的4個級別和邊界3個像素的環(huán)路濾波相比,復(fù)雜度大為降低。

TMS320 DM642平臺

TMS320DM642/C64x系列芯片基于超長指令字結(jié)構(gòu)VelociTI.2,在8個功能單元里擴(kuò)展了88條新的指令,以增強(qiáng)其在視頻/圖像應(yīng)用中的性能,并提高了視頻處理的并行性。

本文的實(shí)驗(yàn)平臺采用SEED公司的VPM642板卡,其主要配置如下:600MHz的TMS320DM642 DSP芯片;DM642外部擴(kuò)展4MB Flash, 32MB SDRAM,可用于大量視頻圖像數(shù)據(jù)和程序的存儲;4路視頻端口(PAL/NTSC制式或S端子);10/100M以太網(wǎng)接口;板上JTAG仿真接口,通過JTAG仿真器可以方便地進(jìn)行視頻壓縮算法的仿真調(diào)試。

AVS在DM642上的實(shí)時解碼

針對DSP的特點(diǎn),本文采用了大量行之有效的優(yōu)化方法,使得解碼速度大大提升。除了使用C6000編譯器提供的編譯選項(xiàng)-pm、-o3、-no debug以外,其他優(yōu)化措施主要包括以下幾個方面。

程序結(jié)構(gòu)的調(diào)整

為了滿足DSP結(jié)構(gòu)的需要,本文對AVS解碼軟件的程序結(jié)構(gòu)進(jìn)行了調(diào)整。

PC上的程序是在解碼一幀后再進(jìn)行環(huán)路濾波,需要兩次把數(shù)據(jù)從片外搬移到片內(nèi)。本文對此進(jìn)行了修改,在每個宏塊解碼完成以后就對該宏塊進(jìn)行濾波。如圖2所示。

圖2 環(huán)路濾波示意圖

在解碼一個宏塊完成以后,先對每個8×8亮度塊的垂直邊界BsV00、BsV01、BsV10、BsV11和色度塊BsV00(U)、BsV01(V)進(jìn)行濾波,濾波的結(jié)果作為輸入,再對水平邊界進(jìn)行濾波。

使用內(nèi)聯(lián)指令和數(shù)據(jù)打包

C6000編譯器提供了許多內(nèi)聯(lián)函數(shù)(instrinsics),如_add2、_avgu4、_dotpsu4等。內(nèi)聯(lián)函數(shù)是直接與C6000匯編指令映射的在線函數(shù)。不易用C/C++語言實(shí)現(xiàn)功能的匯編指令都有對應(yīng)的內(nèi)聯(lián)函數(shù)。

對C6000的存儲器進(jìn)行訪問是很費(fèi)時的。要提高C6000的數(shù)據(jù)處理效率,應(yīng)使1條Load/Store指令能夠訪問多個數(shù)據(jù)。當(dāng)程序需要對一連串的字符型、短型數(shù)據(jù)進(jìn)行訪問時,可以使用數(shù)據(jù)打包,一次讀寫4個字符型、2個短型數(shù)據(jù),并使用_dotpsu4、_add2等指令進(jìn)行處理。

本文在優(yōu)化過程中廣泛采用了內(nèi)聯(lián)指令和數(shù)據(jù)打包,對于水平位置1/2像素插值,使用內(nèi)聯(lián)指令和數(shù)據(jù)打包的效果如表1所示。

使用線性匯編

經(jīng)過C語言優(yōu)化的解碼程序如果仍然達(dá)不到實(shí)時的要求,則需要繼續(xù)進(jìn)行匯編優(yōu)化。與標(biāo)準(zhǔn)的匯編語言相比,采用線性匯編語言進(jìn)行編程不用考慮并行指令的安排、指令延遲和寄存器的使用,以上工作均由匯編優(yōu)化器自動完成,而且,所產(chǎn)生的代碼效率可以達(dá)到手工匯編的95%“100%。

由于IDCT在程序中使用頻繁,比較占用時間,且程序相對簡單。本文對此進(jìn)行了線性匯編優(yōu)化,優(yōu)化前和優(yōu)化后的時間比較見表2。

QDMA的合理使用

QDMA(快速存儲器直接訪問)是DMA和EDMA的進(jìn)一步發(fā)展,其提交傳輸申請的速度比DMA和EDMA快很多。實(shí)際上,QDMA是C6000中搬移數(shù)據(jù)效率最高的手段之一。QDMA支持靈活的數(shù)據(jù)傳輸,它可以完成一維到一維的數(shù)據(jù)傳輸,也可以完成二維到一維或一維到二維的數(shù)據(jù)傳輸。

對于數(shù)據(jù)量較大的傳輸,要盡量采用QDMA。本文對QDMA進(jìn)行了實(shí)驗(yàn),在將兩場數(shù)據(jù)合并為一幀數(shù)據(jù)時,分別采用memcpy和QDMA,其時間統(tǒng)計(jì)見表3。

Cache的合理分配

TMS320DM642提供了256KB的片上RAM,它既可以當(dāng)作普通RAM使用,也可以配置為Cache。DM642的Cache設(shè)置可以是32KB、64KB、128KB、256KB不等。設(shè)置的Cache越大,命中率越高,但留給程序使用的片內(nèi)RAM也就越少。為了可以把使用頻率較高的數(shù)據(jù)和代碼放置在片內(nèi),本文采用了128KB的Cache和128KB片內(nèi)RAM的配置方案。

采用了以上的優(yōu)化策略,AVS標(biāo)清視頻在DM642上的解碼速度達(dá)到30fps,完全滿足了IPTV(25fps)實(shí)時播放的要求。

結(jié)語

AVS解碼在DSP上的實(shí)時實(shí)現(xiàn)具有重要的意義,它可以應(yīng)用到IPTV、數(shù)字視頻監(jiān)控等領(lǐng)域,具有很好的市場應(yīng)用前景。

責(zé)任編輯:gt

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • dsp
    dsp
    +關(guān)注

    關(guān)注

    553

    文章

    7998

    瀏覽量

    348961
  • 解碼器
    +關(guān)注

    關(guān)注

    9

    文章

    1143

    瀏覽量

    40742
  • 視頻監(jiān)控
    +關(guān)注

    關(guān)注

    17

    文章

    1711

    瀏覽量

    64992
收藏 人收藏

    評論

    相關(guān)推薦

    AVS解碼

    各位游客,我上傳的RM52J版本的AVS解碼器,是AVS-P2標(biāo)準(zhǔn)的最后版本。
    發(fā)表于 03-30 21:43

    請問一下高清電視音頻解碼的定點(diǎn)DSP怎么實(shí)現(xiàn)?

    本文通過對MPEG-2 多通道音頻解碼算法介紹及其優(yōu)化,C 程序定點(diǎn)化,高性能媒體處理器DM642 簡介, DSP/BIOS 實(shí)現(xiàn)實(shí)時音頻
    發(fā)表于 06-08 06:41

    基于DM642的視頻壓縮板卡的設(shè)計(jì)與實(shí)現(xiàn)

    介紹了一種基于TI TMS320DM642 的實(shí)時、四路MPEG4視頻壓縮PCI 板卡的設(shè)計(jì)與實(shí)現(xiàn)。對系統(tǒng)軟硬件構(gòu)成以及MPEG4視頻編碼和優(yōu)化進(jìn)行了分析,試驗(yàn)結(jié)果表明該
    發(fā)表于 07-08 14:30 ?22次下載

    H.264視頻編碼在DM642上的實(shí)現(xiàn)優(yōu)化

    設(shè)計(jì)并實(shí)現(xiàn)了基于DSP 芯片TMS320DM642 的H.264 編碼器。詳細(xì)介紹了H.264 算法在DSP上的移植和優(yōu)化。為使編碼器達(dá)到實(shí)
    發(fā)表于 09-03 14:30 ?23次下載

    國標(biāo)AVS解碼軟件源代碼

    國標(biāo)AVS解碼軟件源代碼 包括:AVS1-P2視頻解碼器源碼。。。。
    發(fā)表于 02-09 13:56 ?24次下載

    基于DM642AVS-M關(guān)鍵模塊優(yōu)化

    AVS-M是具有自主知識產(chǎn)權(quán)的視頻壓縮標(biāo)準(zhǔn),具有很好的壓縮性能。DM642處理器是TI公司研制的一款專門面向多媒體應(yīng)用的專用數(shù)字信號處理芯片,具有很強(qiáng)視頻處理能力,是AVS-M標(biāo)準(zhǔn)DSP
    發(fā)表于 08-04 15:24 ?12次下載

    基于AVS-M和DM642視頻服務(wù)器的研究

    本文完成了視頻服務(wù)器的硬件設(shè)計(jì),針對如何充分發(fā)揮DM642硬件平臺的處理能力,提出了關(guān)于AVS-M算法的編碼優(yōu)化方案,該方案是對軟件框架流程進(jìn)行仔細(xì)考慮后提出的,避免了冗余
    發(fā)表于 08-05 16:22 ?0次下載

    AVS游程解碼、反掃描、反量化和反變換優(yōu)化設(shè)計(jì)

    提出了一種適用于AVS的游程解碼、反掃描、反量化和反變換硬件結(jié)構(gòu)優(yōu)化設(shè)計(jì)方案。根據(jù)AVS整數(shù)變換和量化的特性, 設(shè)計(jì)了可工作在不同模式的存儲器陣列, 既可用來進(jìn)行反變換器
    發(fā)表于 09-22 10:30 ?32次下載

    DSP+PCI實(shí)現(xiàn)多媒體壓縮板卡

    介紹了一種基于DM642DsP與PcI總線的多路MPEG一4多媒體實(shí)時壓縮板卡系統(tǒng);該系統(tǒng)由視頻解碼sAA7144H采集視頻數(shù)據(jù),由PcMl80lu采集音額,多蝶捧數(shù)據(jù)采集到DM642DsP
    發(fā)表于 09-29 17:18 ?39次下載
    <b class='flag-5'>DSP</b>+PCI<b class='flag-5'>實(shí)現(xiàn)</b>多媒體壓縮<b class='flag-5'>板卡</b>

    SEED—VPM642視頻驅(qū)動程序

    本篇主要講述關(guān)于視頻驅(qū)動的采集與顯示minidriver在SEEDVPM642板卡上的應(yīng)用.
    發(fā)表于 03-13 14:47 ?34次下載
    SEED—<b class='flag-5'>VPM642</b>視頻驅(qū)動程序

    AVS游程解碼反掃描反量化和反變換優(yōu)化設(shè)計(jì)

    AVS游程解碼反掃描反量化和反變換優(yōu)化設(shè)計(jì)[11]
    發(fā)表于 11-18 16:42 ?0次下載

    基于DM642的H.264編碼算法優(yōu)化實(shí)現(xiàn)

    基于DM642的H.264編碼算法優(yōu)化實(shí)現(xiàn)
    發(fā)表于 05-18 09:22 ?1次下載

    基于DSPAVS解碼優(yōu)化

    編碼效率高、專利費(fèi)用低、授權(quán)模式簡單等優(yōu)勢。AVS解碼器的結(jié)構(gòu)復(fù)雜、運(yùn)算量較大,要在嵌入式平臺上實(shí)現(xiàn)實(shí)時解碼具有較大難度。在對解碼器性能
    發(fā)表于 10-30 10:40 ?0次下載
    基于<b class='flag-5'>DSP</b>的<b class='flag-5'>AVS</b><b class='flag-5'>解碼</b>器<b class='flag-5'>優(yōu)化</b>

    AVS視頻編解碼在TMS320C6455上的實(shí)現(xiàn)

    軟件基礎(chǔ),綜合考慮TMS320C6455的性能和AVS視頻編解碼器的實(shí)現(xiàn)方式,采用了系統(tǒng)結(jié)構(gòu)優(yōu)化、線性匯編
    發(fā)表于 03-06 17:05 ?2次下載
    <b class='flag-5'>AVS</b>視頻編<b class='flag-5'>解碼</b>在TMS320C6455上的<b class='flag-5'>實(shí)現(xiàn)</b>

    基于DSP芯片和VPM642板卡實(shí)現(xiàn)AVS解碼軟件優(yōu)化設(shè)計(jì)

    AVS視頻編解碼標(biāo)準(zhǔn)中的核心技術(shù)包括:幀內(nèi)預(yù)測、1/4精度像素插值、特殊的幀間預(yù)測運(yùn)動補(bǔ)償、8×8整數(shù)變換、量化、二維熵編碼和去塊效應(yīng)環(huán)內(nèi)濾波等。
    發(fā)表于 11-28 09:59 ?952次閱讀
    基于<b class='flag-5'>DSP</b>芯片和<b class='flag-5'>VPM642</b><b class='flag-5'>板卡</b><b class='flag-5'>實(shí)現(xiàn)</b><b class='flag-5'>AVS</b><b class='flag-5'>解碼</b><b class='flag-5'>軟件</b>的<b class='flag-5'>優(yōu)化</b>設(shè)計(jì)